我在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)
为什么会这样?
由于
答案 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