Heroku编译本地预编译的资产

时间:2013-07-09 08:10:07

标签: ruby-on-rails heroku asset-pipeline

我们在推送到Heroku之前在本地预先编译了我们的资产 - 因此,Heroku在生产中使用的公共/资产中存在大量文件 - 我们会看到资产日志中的编译注释为0ms。但是,当Heroku在我们的布局标题中到达javascript_include_tag "application"并尝试重新编译所有js时,我们会收到超时错误。

这是否意味着发生?我们怎样才能让Heroku只使用本地编译的资产,而不是再花50%再次编译资产?扩大dynos确实有帮助,但这并没有真正解决根本原因。

//编辑以解释我们如何使用资产管道//

我们在app / assets / javascript中有一个名为application.js的文件 - 这是清单文件,它引用了我们需要加载的所有javascript。这是一个片段:

//= require js/libs/jquery-1.7.2.min
//= require js/libs/jquery-ui-1.8.21.custom.min
//= require js/libs/jquery.ui.touch-punch.min
//= require js/libs/less-1.3.0.min
//= require js/libs/modernizr-2.5.3.min

此文件中有55行。

然后我们在app / views / layouts / application.html.haml中使用javascript_include_tag "application"来调用该清单文件。

2 个答案:

答案 0 :(得分:0)

在Heroku上有多种使用Rails资产管道的方法,因为你没有给我们提供很多关于实现的细节,我唯一能推荐的就是阅读: https://devcenter.heroku.com/articles/rails-asset-pipeline

如果您使用精确的实施细节更新问题,我可以尝试提供更多帮助。

答案 1 :(得分:0)

检查 config / environments / production.rb 设置:

config.assets.compile = false
config.assets.initialize_on_precompile = true