Rails:供应商的Heroku资产获得404

时间:2013-11-25 08:05:03

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

我在vendors/assets/javascripts文件夹中有一个javascript,我有这行代码:

<script src="assets/grid.js"></script>

在我的app/views页面中。

当我在localhost中测试时,这个grid.js文件(在供应商目录中)工作,但是当我预编译并将我的应用程序推送到heroku时,它说:

GET http://www.domain.com/assets/grid.js 404 (Not Found)

为什么会这样?

由于

2 个答案:

答案 0 :(得分:3)

我会改用javascript_include_tag,这应该有用

<%= javascript_include_tag("grid.js") %>

在制作中我相信asset pipeline会在grid.js的名称上添加一个哈希值,用于指纹识别(该文档的第1.2节),因此您无法使用该路径<script src="assets/grid.js"></script>

答案 1 :(得分:0)

我尝试过:在我的<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="show-more"> show more </button>中设置config.assets.compress = true并且一切都很好,但这是一种不好的做法并且性能不佳。哟可以看到更多细节config.assets.compile=true in Rails production, why not?

我的解决方案: 在本地项目config/environments/production.rb中运行,并在github仓库中推送public / assent /中生成的所有文件,并在heruko中部署。哟可以阅读此内容以获取更多详细信息https://devcenter.heroku.com/articles/rails-asset-pipeline#compiling-assets-locally