jQuery事件监听器不在Heroku Production上工作

时间:2015-04-01 17:31:56

标签: jquery ruby-on-rails heroku turbolinks

所以我有一个小问题让我疯了。

我有一个利用一些jQuery事件监听器的Rails 4应用程序。这些在开发和升级方面非常有用。但是当我推向生产时,他们并没有被设定。

值得一提的是,'分期'是Heroku的Cedar-14应用程序就像生产'。

唯一的区别是RAILS_ENV =' staging'而不是生产'。

如果我使用控制台初始化监听器,它们的工作效果非常好。通过将生产RAILS_ENV更改为“分期”'听众也会工作。

我的production.rb和staging.rb完全相同。现在资产没有被弄脏或者任何东西,据我所知,它们以相同的方式提供给客户。

所以我的问题是RAILS_ENV在生产中设置的是什么,这会阻止我的任何一个' $。on'听众从设定?

版本

jQuery 1.11.1
Rails 4.1.4
Ruby 2.2.0
Turbolinks 2.3.o

1 个答案:

答案 0 :(得分:1)

仔细检查application.js

中宝石的顺序
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks

下一步,确保缩小不会导致问题。添加gem' uglifier'到你的gem文件,以及你的production.rb config.assets.js_compressor = Uglifier.new(:mangle => false)

的以下内容

是否有任何jQuery代码执行?如果没有,并且uglifer没有解决问题,请使用jQuery(document)而不是$(document)引用jQuery

仍然破产?通过将config.assets.compile = true添加到production.rb。

来启用资产编译回退

如果添加编译回退有效,则资产管道中可能存在问题。我没有太多使用Heroku,但确保在环境rake assets:clobber上擦除所有资产,并确保在部署rake asset:precompile上执行资产编译

如果仍然破损,请与听众一起发布文件。