jQuery事件监听器在Heroku Production上不起作用
所以我有一个小问题让我疯狂。jQuery事件监听器在Heroku Production上不起作用
我有一个利用一些jQuery事件监听器的Rails 4应用程序。这些在开发和分期方面非常有效。但是当我推动生产时,他们并没有定下来。
值得一提的是,'staging'是Heroku上的Cedar-14应用,就像'production'一样。
唯一的区别是RAILS_ENV ='暂存'而不是'生产'。
如果我使用控制台初始化侦听器,它们工作得很好。通过将生产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
仔细检查你的宝石的顺序的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与jQuery(document)
而不是$(document)
仍然爆发?通过在production.rb中添加config.assets.compile = true
来启用资产编译后备功能。
如果添加编译后备工作,资产管道中可能存在问题。我不多使用Heroku,但要确保所有资产都在环境中被擦除rake assets:clobber
并且您的资产编译正在部署中执行rake asset:precompile
如果仍然损坏,请将该文件发布给您的听众。