2013-08-23 13 views
16

Ich erhalte eine Fehlermeldung erscheinen kann ich nicht die Ursache herauszufinden:EOF Fehler javascript_include_tag Rails 4

EOF Error end of file reached 

von /app/views/layouts/application.html.erb genannt, Zeile 6 :

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

In Rubin, ein EOF-Fehler ist eine Unterklasse von IOError, und wird von einem IO-Betrieb erreicht das Ende einer Datei erhöht.

Hier einige von dem, was ich bisher herausgefunden haben:

Verwendung:

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

... oder ...

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

oder sogar die einzelnen js Auflistung aus Dateien über javascript_include_tag funktionieren, um den EOF-Fehler zu entfernen.

Ich dachte, dies könnte durch einige Direktiven von sprockets verursacht werden, so löschte ich alle Anweisungen in application.js. Das hat nichts geändert.

Lauf Rake Vermögen: precompile auch gibt mir:

rake aborted! 
end of file reached 

Lauf git diff auf dem app/assets/Javascripts Verzeichnis zeigt 1, was in einer js-Datei Banknoten- sein kann ich vor kurzer Bearbeitung worden war:

Das "keine neue Zeile am Ende der Datei" Bit ... Ich habe noch nie zuvor gesehen. Ich habe jedoch am Ende der gleichen Datei einen Zeilenumbruch eingefügt und die Änderung übernommen, und dieser Kommentar ist nun aus dem Diff verschwunden.

EDIT: Pointing meinen Browser auf localhost: 3000/assets/application.js gibt mir dies:

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

ich gründlich bin ratlos und habe versucht, dies für den ganzen Tag zu debuggen. Warum tritt dieser Fehler auf? Hier ist die Stacktrace aus, wenn ich laufen Rake Vermögen: 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>' 
+0

Ich habe das gleiche Problem in den letzten Tagen erlebt. Ich habe am Wochenende keine Rails-Entwicklung gemacht, aber mit nvm die neuesten Versionen von Node und Npm Coffee-Script-Paketen installiert. Es macht für mich keinen Sinn, dass dies Auswirkungen auf meine Schienenanwendung haben könnte, aber vielleicht tut es das? – jkndrkn

Antwort

4

Versuchen Sie lokale Projektverzeichnis zu löschen und eine neue Kopie heraus überprüfen.

ich erleben heute einen abgebrochenen Schienen Serverstart, dass vielleicht in einem inkonsistenten Zustand mein System verlassen und in den gleichen genauen Fehlern führten Sie wurden zu erfahren. Ein Ruby 2.0.0-p0 segfault stoppte den Start meines Rails-Servers, nach dem ich aufgrund des oben genannten Fehlers keine Seiten mehr laden konnte.

Ich weiß nicht genau, was diesen ursprünglichen Fehler leider verursacht hat. Zum Glück muss ich mich nicht mehr damit befassen!

+0

Ja, das habe ich gestern versucht und es hat funktioniert. Ich habe zuerst versucht, zu einem früheren Commit zurückzukehren, aber ich bekam den gleichen Fehler, also habe ich 'git clone https://github.com/mygithubusername/myrepo.git mynewprepo' ausgeführt, um aus irgendeinem Grund in ein neues lokales Verzeichnis zu klonen es fing an zu arbeiten. – kwyoung11

+0

Kann mir jemand erklären, WARUM das passiert ist? Ich hatte heute Nachmittag dasselbe Problem bei der Arbeit und dachte, die Welt wäre zu Ende! Angenommen, keiner von euch benutzt Twitter-Juwel? Oder vielleicht Rack Timeout? Sie sind die neuesten Ergänzungen zu meiner Codebasis, die dieses ... – stephenmurdoch

56

Wenn Sie noch Ihre alten Repo herumliegen haben, dann können Sie bundle exec rake tmp:clear laufen. Ich schätze, das wird es beheben.

+0

haben können Ich löschte leider mein altes Ablagefach, also kann ich es nicht heraus prüfen. Hoffentlich wird das für andere Leute mit dem gleichen Fehler nützlich sein. – kwyoung11

+3

Yay das hat funktioniert !!! – alalani

+14

Um dies zu beantworten: Die Ursache scheint zu sein, dass der Asset-Cache im Ordner tmp beschädigt ist. Ich glaube, das passiert, wenn der Rails-Prozess im falschen Moment stirbt. Wenn Sie versuchen, den Server neu zu starten, Test usw. auszuführen, versucht die Asset-Pipeline, den beschädigten Cache zu lesen, und er verstopft. Aus diesem Grund löst das Löschen des Caches das Problem. – rlkw1024

2

die temporären Dateien mit dem folgenden Befehl behebt dieses Problem Reinigung:

rake tmp:clear 
0

Wenn Sie dieses Problem auf Windows haben sollte, versuchen, in Ihre Gemfile.lock Datei zu gehen und den Wert manuell von coffee-script-source-1.8.0 Ändern (meine begann als 1.9.1.1). Etwas über neuere Versionen spielt aus irgendeinem Grund nicht gut.