17

原因が分からないエラーが表示されます:

EOF Error end of file reached 

/app/views/layouts/application.html.erb の 6 行目から呼び出されます。

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

ruby では、EOF エラーは IOError のサブクラスであり、IO 操作がファイルの最後に達したときに発生します。

これまでにわかったことのいくつかを次に示します。

使用:

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

...また...

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

または、javascript_include_tag を使用して個々の js ファイルを一覧表示することで、EOF エラーを削除することもできます。

これはいくつかの sprockets ディレクティブが原因ではないかと考えたので、application.js 内のすべてのディレクティブを削除しました。これは何も変わりませんでした。

rake assets:precompile を実行すると、次の結果が得られます。

rake aborted!
end of file reached 

app/assets/javascripts ディレクトリで実行git diffすると、最近編集していた .js ファイルで注意すべき点が 1 つ表示されます。

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

その「ファイルの最後に改行がない」というビット...私はこれまでに見たことがありません。ただし、同じファイルの最後に改行を挿入して変更をコミットしたところ、そのコメントは差分から削除されました。

編集: ブラウザで localhost:3000/assets/application.js を指定すると、次のようになります。

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

私は完全に困惑しており、これを一日中デバッグしようとしています。なぜこのエラーが発生するのですか? rake assets:precompile を実行したときのスタックトレースは次のとおりです。

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>'
4

4 に答える 4

58

古いリポジトリがまだ残っている場合は、実行できますbundle exec rake tmp:clear。それで直ると思います。

于 2013-08-29T18:41:10.863 に答える
2

次のコマンドを使用して一時ファイルをクリーンアップすると、この問題が修正されます。

rake tmp:clear
于 2015-02-12T13:14:06.330 に答える
0

Windows でこの問題が発生している場合は、Gemfile.lockファイルに移動して、手動で の値を変更してみてください(私の場合は から始まりましたcoffee-script-source) 。何らかの理由で、新しいバージョンに関する何かがうまく機能しません。1.8.01.9.1.1

于 2015-11-18T03:25:57.407 に答える