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 的预编译?的主要内容,如果未能解决你的问题,请参考以下文章

未使用 Rails 测试环境中的预编译资产

Rails 4 Heroku 资产:预编译失败

预编译heroku后生产中缺少Rails资产

向初学者解释 Heroku 推送之前的 Rails 预编译?

远程:!预编译资产失败。在heroku上(Rails 6和语义UI)

Sass :: SyntaxError从预编译中防止Heroku Rails应用程序