Rails 4 - .js文件未在生产环境中运行 - Heroku

时间:2015-11-18 18:44:56

标签: ruby-on-rails ruby ruby-on-rails-4 heroku

我在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

1 个答案:

答案 0 :(得分:1)

如果您安装rails_12factor gem as Heroku Recommends,它将在部署时自动运行rake assets:precompile(通过名为rails_serve_static_assets的gem依赖项。)

如果它看到public / assets / manifest。*文件或/ public / assets目录,它可能会跳过此步骤,该目录告诉您已经编译了资产,并且不需要再次执行。