为什么jQuery没有加载到我的Rails 3.2.3应用程序中?

直到昨天,jQuery在我的Rails应用程序中加载得很好。 我正在玩安装debugger / ruby​​-debug gem。 您可能已经意识到Rails 3中的调试器gem存在问题,但我没有成功安装依赖项,因此我从Gemfile中删除了gem。 从那时起加载我的网站jQuery没有加载。 这些是我在控制台中看到的消息:

assets/jquery_ujs.js?body=1:377Uncaught ReferenceError: jQuery is not defined bootstrap-transition.js:24Uncaught TypeError: undefined is not a function bootstrap.js:3Uncaught ReferenceError: jQuery is not defined welcome:210Uncaught ReferenceError: $ is not defined 

这是我的application.js文件:

 //= require jquery //= require jquery_ujs //= require twitter/bootstrap //= require_tree . 

如果我在layouts / application.html.erb中显式加载jQuery,就像这样,它可以工作:

   

有什么想法我可以做什么来解决这个并再次加载jQuery? 查看.rvm / gems / ruby​​-1.9.3-p125 / gems / jquery-rails-2.0.2 / vendor / assets / javascripts我可以看到jquery.js和jquery.min.js仍在那里。

谢谢@Djj。 重新订购我的application.js树似乎已经解决了这个问题。 这是我修改后的树:

 //= require jquery_ujs //= require jquery //= require twitter/bootstrap //= require jquery.placeholder //= require_tree . 

在我的情况下,问题是由于异步加载javascript文件。

 <%= javascript_include_tag "application", :async => true %> 

切换回

 <%= javascript_include_tag "application" %> 

解决了这个问题。

经过很长一段时间,这解决了我的错误问题。

确保Jquery仅加载一次。

在Gemfile中包含gem’jquery gem 'jquery-rails'并执行$ bundle install

确保将这些包含在app/assets/javascripts/application.js文件中。

 //= require jquery //= require jquery_ujs 

// require jquery那样错误的语法导致不加载jquery。

如果所有内容都包含在内,则html文件的页面源必须显示包含的所有源文件。

对我来说,我有一个问题,因为我在app / views / layouts下的application.html.erb中明确加载了google的jquery插件源,除了在app / assets / javascript下的application.js文件中要求它。 这导致jquery再次定义, oApi没有定义像placeholder()这样的错误, oApi没有为null定义会弹出。