簡體   English   中英

為什么jQuery沒有加載到我的Rails 3.2.3應用程序中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM