在推送到 Heroku 之前,我们在本地预编译了我们的资产——因此在公共/资产中存在大量文件,这些文件大部分 Heroku 在生产中使用——我们在 0 毫秒的日志中看到了资产编译说明。javascript_include_tag "application"
但是,当 Heroku 进入我们的布局标题并尝试重新编译所有 js时,我们会遇到超时错误。
这是注定要发生的吗?我们如何才能让 Heroku 只使用本地编译的资产,而不是继续花费 50 年代再次编译资产?扩大测功机确实有帮助,但这并不能真正解决根本原因。
// 编辑以解释我们如何使用资产管道 //
我们在 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 行。
然后我们javascript_include_tag "application"
在 app/views/layouts/application.html.haml 中使用来调用该清单文件。