为什么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
定义会弹出。