2013-08-23 7 views
16

私は原因を把握することができないようにエラーを取得しています:RubyでEOFエラーjavascript_include_tag Railsの4

<%= javascript_include_tag "application", "data-turbolinks-track" => true %> 

、EOFエラーが例外IOErrorのサブクラスであり、ファイルの終わりに到達IO動作により上昇します。

は、ここで私はこれまでに判明した内容の一部です:

は使用:

<%= javascript_include_tag :defaults, "data-turbolinks-track" => true %> 

...か...

<%= javascript_include_tag :all, "data-turbolinks-track" => true %> 

または個々のjsを一覧表示しますjavascript_include_tag経由のファイルは、EOFエラーを取り除くために動作します。

私は、これは、いくつかのスプロケットディレクティブによって引き起こされるかもしれないと思ったので、私はapplication.js内のすべてのディレクティブを削除しました。これは何も変わらなかった。

すくい資産の実行:アプリ/資産/ JavaScriptのディレクトリにgit diffを実行

rake aborted! 
end of file reached 

は、私が最近編集された.jsファイルに注目すべきであってもよい1つの事を示しています:プリコンパイルも私を与える

+$(document).on('ready page:load', function() { 
+ 
+  // some code I had written 
+ 
+}); 
\ No newline at end of file 

「ファイルの最後に改行がありません」というビット...以前はこれまで見たことがありません。しかし、私はちょうど同じファイルの最後に改行を挿入し、変更をコミットし、そのコメントはdiffから消えています。

EDIT: ローカルホストに自分のブラウザをポインティング:3000 /資産/ application.js私にこれを与える:

throw Error("EOFError: end of file reached") 

私は徹底的に困惑していますし、全体の日のためにこれをデバッグしようとしています。このエラーはなぜ発生しますか?ここで私はすくい資産を実行したときからのスタックトレースがある:プリコンパイル:

rake aborted! 
end of file reached 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0.rc2/lib/active_support/core_ext/marshal.rb:6:in `load' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0.rc2/lib/active_support/core_ext/marshal.rb:6:in `load_with_autoloading' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/cache/file_store.rb:19:in `block in []' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/cache/file_store.rb:19:in `open' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/cache/file_store.rb:19:in `open' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/cache/file_store.rb:19:in `[]' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/caching.rb:14:in `cache_get' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/caching.rb:84:in `cache_get_hash' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/caching.rb:54:in `cache_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/index.rb:93:in `build_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/base.rb:287:in `find_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/index.rb:61:in `find_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/bundled_asset.rb:37:in `init_with' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/asset.rb:24:in `from_hash' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/caching.rb:54:in `cache_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/index.rb:93:in `build_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/base.rb:287:in `find_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/index.rb:61:in `find_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:211:in `block in find_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:257:in `benchmark' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:210:in `find_asset' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:119:in `block in compile' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:118:in `each' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:118:in `compile' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:60:in `block (3 levels) in define' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-2.10.0/lib/rake/sprocketstask.rb:146:in `with_logger' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:59:in `block (2 levels) in define' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval' 
/Users/kevinyoung/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>' 
+0

私はここ数日間、この同じ問題が発生し始めました。私は週末にレール開発をしなかったが、nvmを使ってノードとnpmのコーヒースクリプトパッケージの最新バージョンをインストールした。これは私のレールアプリケーションに影響を与えるだろうが、それはおそらく私には意味がありません? – jkndrkn

答えて

4

ローカルのプロジェクトディレクトリを削除し、新しいコピーをチェックアウトしてください。

私はおそらく矛盾した状態に私のシステムを残して、あなたが経験したのと同じ正確なエラーが生じたことを本日中止されたレールのサーバの起動を経験しました。 Ruby 2.0.0-p0 segfaultが私のレールサーバの起動を止めました。その後、上記のエラーのためにページを読み込めませんでした。

残念なことに、この元のエラーの原因はわかりません。幸いにも、私はもう私の終わりにそれに対処する必要はありません!

+0

ええ、私は昨日それを試み、それは働いた。私は最初に以前のコミットに戻してみましたが、同じエラーが出ていたので、新しいローカルディレクトリに複製するために 'git clone https://github.com/mygithubusername/myrepo.git mynewrepo'を実行しました。何らかの理由でそれは働き始めた。 – kwyoung11

+0

誰もがこれがなぜ起こったのか説明できますか?今日の仕事で同じ問題が発生し、世界が終わったと思った!あなたのどちらもTwitterの宝石を使っているとしませんか?または、おそらくラックタイムアウト?彼らはこれを導入したかもしれない私のコードベースへの最新の追加です... – stephenmurdoch

56

あなたはまだ古いレポが転がっている場合、あなたはbundle exec rake tmp:clearを実行することができます。私はそれを修正すると思う。

+0

残念なことに私はこれをテストすることはできませんので、私の古いリポジトリを削除しました。うまくいけば、これは同じエラーを持つ他の人にも役立つでしょう。 – kwyoung11

+3

これはうまくいった! – alalani

+14

この回答を詳しく説明する:原因は、tmpフォルダ内のアセットキャッシュが破損しているためです。これは、Railsプロセスが間違ったタイミングで終了した場合に発生します。サーバーを再起動しようとすると、testなどを実行すると、アセットパイプラインは破損したキャッシュを読み取ろうとします。これは、キャッシュをクリアすることで問題を解決する理由です。 – rlkw1024

2

この問題を次のコマンドの修正を使用して一時ファイルのクリーンアップ:

rake tmp:clear 
0

Windows上でこの問題を抱えている場合は、あなたのGemfile.lockファイルに入って、手動で1.8.0coffee-script-sourceの値を変更してみてください(鉱山は1.9.1.1として開始)。新しいバージョンについての何かは、何らかの理由でうまくいきません。

関連する問題