[英]Why is jQuery not loading in my Rails 3.2.3 app?
直到昨天,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,就像這樣,它可以工作:
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" %>
<%= javascript_include_tag "application" %>
有什么想法我可以做什么來解決這個並再次加載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
定義會彈出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.