我在Heroku上的生产中加载我的.js文件时遇到了问题。
我知道这些文件是从资产管道中获取的,因为它们在开发中工作得很好,但我无法让.js在生产中工作。
我创建了/assets/javascripts/notification.js
,其中包含:
$(document).ready(function() {
$("span").click(function() {
$(".notice").delay(200).fadeOut(2000, function() {
});
});
});
我的/assets/javascripts/application.js
文件包含:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
在开发中,这很有效。
当我部署到Heroku时,我可以看到代码显示在单个application.js
文件中,除了文档就绪功能被删除,请参阅下面的生产.js文件:
<script src="/assets/application-b9a733c3cc0929ae852e45a6c3a2a5f6.js" data-turbolinks-track="true"></script>
我的config/production.rb
包含:
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
config.assets.compile = true
答案 0 :(得分:1)
如果您安装rails_12factor gem as Heroku Recommends,它将在部署时自动运行rake assets:precompile
(通过名为rails_serve_static_assets的gem依赖项。)
如果它看到public / assets / manifest。*文件或/ public / assets目录,它可能会跳过此步骤,该目录告诉您已经编译了资产,并且不需要再次执行。