所以我有一个小问题让我疯了。
我有一个利用一些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
答案 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
上执行资产编译
如果仍然破损,请与听众一起发布文件。