Rails:Heroku 的预编译?
Posted
技术标签:
【中文标题】Rails:Heroku 的预编译?【英文标题】:Rails: Precompile for Heroku? 【发布时间】:2014-04-07 19:12:08 【问题描述】:在 Heroku 上部署我的应用程序的新版本之前,我需要在我的控制台中执行此操作(以便 css 和 js 在 Heroku 上工作):RAILS_ENV=production bundle exec rake assets:precompile
。
我刚刚从论坛中挑出这行代码,我的问题是:
1) 为什么我需要这样做? 2) 是否有可能在我的 Rails 代码中实现一些更永久的东西,以便它自动进行预编译(所以我不需要每次对我的 css 或 js 文件进行一些更改时手动编写它)?
【问题讨论】:
【参考方案1】:1) 为什么我需要这样做?
rails 应用程序中通常有很多js
文件和css
文件。上面的命令压缩并缩小了所有这些文件,这将减少浏览器为呈现网页而发出的请求数。 Web 浏览器可以并行发出的请求数量有限,因此更少的请求可能意味着更快地加载您的应用程序。
More
2) 是否有可能在我的 Rails 代码中实现一些更永久的东西,以便它自动进行预编译(所以我不需要在每次对我的 css 或 js 文件进行一些更改时手动编写它)?
是的。如果您没有为 rails 3 包含 public/assets/manifest.yml
,Heroku 会自动编译您的资产,而在 rails 4 中它是 public/assets/manifest-<md5 hash>.json
More
相关答案:Automatically precompile assets before pushing to Heroku
【讨论】:
感谢您的回答。但这是在推送到 Heroku 之前自动预编译的最佳方式吗(这似乎有点麻烦)? 是的。也就是说,不知道为什么你认为它很麻烦【参考方案2】:在你的 production.rb 中
config.assets.compile = true
【讨论】:
以上是关于Rails:Heroku 的预编译?的主要内容,如果未能解决你的问题,请参考以下文章
向初学者解释 Heroku 推送之前的 Rails 预编译?