2012-05-11 17 views
11

昨日までjQueryが私のRailsアプリでうまく読み込んでいました。私はデバッガ/ルビーデバッグの宝石をインストールして遊んでいた。おそらくあなたが知っているように、Rails 3にデバッガの宝石に問題があり、依存関係を取得するのに失敗してしまったので、Gemfileから宝石を削除しました。それ以来、私のサイトをロードするときjQueryはロードされません。これらは私がコンソールに表示されるメッセージです。Rails 3.2.3アプリケーションで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ファイルです:私はそうのように、明示的なレイアウト/ application.html.erbでのjQueryをロードした場合、それを

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

作品:

<%= 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はまだそこにあります。

+0

あなたのgemfileにまだ 'gem 'jquery-rails''行がありますか? –

+0

もちろんです。 jquery-railsも正常にインストールされました。 –

+0

jqueryライブラリをapp/assets/javascriptsフォルダに置いてみましたか? – uday

答えて

11

ありがとう@Djj。私のapplication.jsツリーを並べ替えると、問題が解決されたようです。ここに私の改訂された木があります:

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

これがなぜ機能するのでしょうか? – tibbon

+0

これも私の問題を解決しました! – kibaekr

0

これは私がこのエラーで私の問題を解決した後です。

Jqueryが一度だけロードされていることを確認してください。

はGemfileでgem 'jquery-rails'を含めると$ bundle install

app/assets/javascripts/application.jsファイルにこれらを含めるようにしてくださいます。

//= require jquery 
//= require jquery_ujs 

構文が// require jqueryのように間違っていると、jqueryがロードされません。

すべてが正しく含まれている場合、HTMLファイルのページソースには、すべてのソースファイルが含まれている必要があります。

Googleのjqueryプラグインソースをapp/views/layoutsのapplication.html.erbに明示的に読み込んでいたため、application/assets/javascriptのapplication.jsファイルにjqueryプラグインソースを必要としていたため、問題がありました。これにより、jqueryが再び定義され、placeholder()などのエラーは定義されていません。oApiが定義されていないため、nullがポップアップします。

4

私の場合、問題は非同期にjavascriptファイルを読み込んでいたためです。

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

<%= javascript_include_tag "application" %> 

に戻って切り替えるには、問題を解決しました。

+0

これも私のために修正されました。私は非同期を利用したいと思っていますが、なぜそれが問題を引き起こしているのか考えてみませんか? – Marklar

関連する問題