Ruby on rails Heroku正在编译本地预编译的资产
在推送到Heroku之前,我们在本地预编译我们的资产——因此在公共/资产中有大量文件,Heroku在生产中使用了这些文件——我们在0ms日志中看到了资产编译注释。然而,当Heroku在布局标题中访问Ruby on rails Heroku正在编译本地预编译的资产,ruby-on-rails,heroku,asset-pipeline,Ruby On Rails,Heroku,Asset Pipeline,在推送到Heroku之前,我们在本地预编译我们的资产——因此在公共/资产中有大量文件,Heroku在生产中使用了这些文件——我们在0ms日志中看到了资产编译注释。然而,当Heroku在布局标题中访问javascript\u include\u标记“application”并尝试重新编译所有js时,我们会遇到超时错误 这是注定要发生的吗?我们如何才能让Heroku只使用本地编译的资产,而不继续花费50秒来编译资产?扩展dynos确实有帮助,但这并不能真正解决根本原因 //编辑以解释我们如何使用资产
javascript\u include\u标记“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\u include\u标记“application”
来调用该清单文件 在Heroku上使用Rails资产管道有多种方法,由于您没有向我们提供太多关于实现的详细信息,我唯一可以推荐的是阅读以下内容:
如果您用实施的精确细节更新问题,我会尽力提供更多帮助。检查您的配置/environments/production.rb设置:
config.assets.compile = false
config.assets.initialize_on_precompile = true
您是否将public/assets文件夹推送到Git(包括manifest.yml)?是的,当我们推送到Heroku时,它正在被识别。因此您确认收到Heroku的消息:“Detected manifest.yml,假设资产在本地编译”?如果是的话,它仍然会重新编译资产,这可能是他们系统中的一个bug。哦,这太令人兴奋了。是的,我得到了确切的信息。