Heroku的导轨3.1应用程序 - 编制资产当地VS塞编译
期间编制的资产,我运行的轨道在Heroku上雪松堆栈3.1应用程序,它支持资产的管道。 Heroku lists 3 ways来编译资产Heroku的导轨3.1应用程序 - 编制资产当地VS塞编译
- 本地编译资产。
- 编译slug时编译资产。
- 在运行时编译资产。
显然#3对性能不利,Heroku文档也建议不要。但我不确定#1和#2哪个更好。
#1要求您运行rake assets:precompile
并在git中包含您的public/assets
文件夹。你的slu will会更大,但我认为部署网站的停机时间会更短。但是更大的slu size大小意味着应用程序启动速度较慢,所以也许这是一次洗牌
#2将使其花费更长的时间来部署在Heroku上侧正在做,因为预编译的更新。但是,你会有一个更小的slu and,而且管理/记忆更少。
我的问题是 - 哪个选项(#1或#2)是最适合生产的,为什么?
到目前为止,它看起来像选项#2,但我想确保我不忽视的东西。
我解决一些问题,在我的问题上大的疑难杂症在这里:Rails 3.1.1 asset pipeline Heroku caching gotcha
我宁愿#2,如果它为我工作,所以我没有签编制资产刚刚涨大的混帐库。塞在编译期间
编制资产不会导致任何额外的停机时间,因为现有的应用程式会熬夜到一决高下编译完成所以不用担心那里。
我的建议是#2,如果你可以把它为你工作。如果你最终以#1的形式出现,那么采取最佳做法是在耙子资产之前对rm -r public/assets进行git:预编译以确保没有剩余。
更新:升级到Devise 1.5后,选项#2现在适用于我。0 - 比检查资产更清洁。 –
如果你没有其他选择,只有#1,创建一个Rake任务以部署到Heroku是一个好主意。它会1)删除公共/资产2)预编译资产3)签入新编译的资产git 4)推到heroku。 # – Dty
#2也是我的首选选项 - 但我一直很困惑,为什么它需要这么长时间才能完成。它应该只是抓了十几个文件和gziping。也许缩小需要最长的时间来检查语法等?任何见解都会被赞赏 –
http://devcenter.heroku.com/articles/cdn-asset-host-rails31是一个很好看的太 - 虽然它同步资产S3从在Heroku您的应用程序,使他们仍然存在于你的蛞蝓只是没有提供来自Heroku。 –
也有时#2并不总是一种选择。 Heroku总是会首先尝试编译它们,如果在运行时失败的话。 –