2013-12-19 12 views
18

私はカスタムJavascriptを含まない新しめのRails 4アプリを持っています。"jquery-ujsが既にロードされています"という原因のターボがあります。 <code>app/assets/javascripts</code>、<code>lib/assets/javascripts</code>と<code>vendor/assets/javascripts</code>はすべて(別に<code>app/assets/javascripts/application.js</code>から)空になっているフォルダ - エラー

私は、アプリケーションの周りをクリックするとエラーが発生しますjquery-ujs has already been loaded! JSコンソールで。私が通常のリンクをクリックすると、時々、私は「戻る」ボタンを押すたびに発生し、そして

application.js(私はそれが一貫して実現することはできませんが。):

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

私はapplication.jsからターボリンクを取り除きますが、エラーが出るのを止めます...ターボリンクが原因であるようです。

これはターボリンクのバグですか、何か間違っていますか?

source 'https://rubygems.org' 

ruby '2.0.0' 

gem 'rails', '4.0.0' 

gem 'active_model_serializers' 
gem 'aws-sdk' 
gem 'bootstrap-sass-rails' 
gem 'coffee-script-source', '1.5.0' 
gem 'coffee-rails', '~> 4.0.0' 
gem 'devise' 
gem 'factory_girl_rails', '4.1.0' 
gem 'figaro' 
gem 'font-awesome-sass-rails' 
gem 'jbuilder', '~> 1.2' 
gem 'jquery-rails' 
gem 'paperclip' 
gem 'paperclip-meta', github: 'y8/paperclip-meta' 
gem 'pg' 
gem 'sass-rails', '~> 4.0.0' 
gem 'turbolinks' 
gem 'uglifier', '>= 1.3.0' 

group :production do 
    gem 'rails_12factor' 
end 

group :doc do 
    gem 'sdoc', require: false 
end 

group :test do 
    gem 'capybara', '2.1.0' 
end 

group :development, :test do 
    gem 'childprocess', '0.3.9' 
    gem 'debugger' 
    gem 'faker', '~> 1.2.0' 
    gem 'json_spec' 
    gem 'rspec-rails' 
    gem 'rspec-mocks' 
end 

group :development do 
    gem 'annotate' 
    gem 'hirb' 
    gem 'wirb' 
end 

のいずれか助けていないようだapplication.jsでrequire sのオーダーの周りに変更する:

は、ここに私のGemfileです。

答えて

50

スクリプトのページにbodyが含まれている可能性が最も高いです。

多くのため、この問題を参照してください:のみ、Turbolinksに切り替えたとき、親指のルールとして

headの内側にあなたのJavaScriptタグのすべてを移動し、後方作業:turbolinks readmeからhttps://github.com/rails/turbolinks/issues/143

絶対必要な場合は、JavaScriptコードを本体に戻してください。

<script type="text/javascript" data-turbolinks-eval=false> 
    console.log("I'm only run once on the initial page load"); 
</script> 
+2

がそれを手に入れたロードされたように、二回書かれたこれらを含めていました!閉じた ''タグの前に私の' <%= javascript_include_tag ...%> 'を持っていました - それを' 'の中に移動することで問題が解決されました。ありがとう! – GMA

+0

私はレイアウトの本体にjavascriptタグを持っていました。それは本当に私を台無しにしました。 – thedanotto

6

私は同じ問題に直面し、いくつかのヒットとトライアルIをやった後:あなたは身体内の任意のスクリプトタグを持っている場合は、再評価されるように、あなたはfalseからdata-turbolinks-eval属性を設定することができますしたくありませんjavascriptファイルのシーケンスが重要であることを発見しました。

作業シーケンスが

//= require jquery 
//= require jquery_ujs 
//= require jquery.turbolinks 
//= require turbolinks 

希望で、この解決策は、誰かを助けます。私にとって

0

、私はそれが二回

<%= javascript_include_tag :application %> <%= javascript_pack_tag 'application' %>

関連する問題

 関連する問題