Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku正在编译本地预编译的资产_Ruby On Rails_Heroku_Asset Pipeline - Fatal编程技术网

Ruby on rails 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确实有帮助,但这并不能真正解决根本原因 //编辑以解释我们如何使用资产

在推送到Heroku之前,我们在本地预编译我们的资产——因此在公共/资产中有大量文件,Heroku在生产中使用了这些文件——我们在0ms日志中看到了资产编译注释。然而,当Heroku在布局标题中访问
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。哦,这太令人兴奋了。是的,我得到了确切的信息。