2013-08-23 21 views
16

Ricevo un errore che non riesco a capire la causa di:EOF errore javascript_include_tag Rails 4

EOF Error end of file reached 

chiamato da /app/views/layouts/application.html.erb, linea 6 :

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

In rubino, un errore EOF è una sottoclasse di IOError, e viene sollevata da un'operazione IO raggiungere la fine di un file.

Ecco alcune delle cose che ho scoperto finora:

Usando:

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

... o ...

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

o addirittura messa in vendita i singoli js i file tramite javascript_include_tag funzionano per rimuovere l'errore EOF.

Ho pensato che questo potrebbe essere causato da alcune direttive di ruote dentate, quindi ho eliminato tutte le direttive in application.js. Questo non ha cambiato nulla.

Esecuzione beni rake: precompilare mi dà anche:

rake aborted! 
end of file reached 

esecuzione git diff sulla cartella app/attività/javascript mostra 1 cosa che può essere di nota in un file .js che avevo editing di recente:

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

Quel "no newline alla fine del file" bit ... non l'ho mai visto prima. Tuttavia, ho appena inserito una nuova riga alla fine dello stesso file e ho eseguito la modifica, e quel commento è ora passato dalla diff.

EDIT: Indicando il mio browser su localhost: 3000/attività/application.js mi dà questo:

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

sto bene perplesso e sono state cercando di eseguire il debug questo per l'intera giornata. Perché si verifica questo errore? Ecco l'stacktrace da quando corro beni rake: precompilare:

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

Ho iniziato a sperimentare lo stesso problema negli ultimi giorni. Durante il fine settimana non ho sviluppato nessuno sviluppo delle rotaie, ma ho usato nvm per installare le ultime versioni dei pacchetti npm coffee-script e node. Non ha senso per me che questo avrebbe un impatto sulla mia applicazione rotaie ma forse lo fa? – jkndrkn

risposta

4

Provare a eliminare directory del progetto locale e check-out una nuova copia.

Ho subito un avvio anomalo del server di rotaie che forse ha lasciato il mio sistema in uno stato incoerente e ha provocato lo stesso errore esatto che stavi riscontrando. Un segfault ruby ​​2.0.0-p0 ha interrotto l'avvio del mio rails server, dopo di che non ho potuto caricare alcuna pagina a causa dell'errore sopra menzionato.

Non so per certo cosa abbia causato questo guasto originale, sfortunatamente. Fortunatamente, non devo più occuparmene per la mia parte!

+0

Sì, l'ho provato ieri e ha funzionato. Prima ho provato a tornare a un commit precedente, ma stavo ottenendo lo stesso errore, quindi ho eseguito 'git clone https://github.com/mygithubusername/myrepo.git mynewrepo' per clonare in una nuova directory locale e per qualche motivo ha iniziato a funzionare. – kwyoung11

+0

Qualcuno può spiegare PERCHE 'è successo? Ho avuto lo stesso problema questo pomeriggio nel lavoro e ho pensato che il mondo fosse finito! Non credi che nessuno di voi stia usando la gemma di Twitter? O forse Rack Timeout? Sono le ultime aggiunte alla mia base di codice che potrebbe aver introdotto questo ... – stephenmurdoch

56

Se hai ancora il vecchio repository in giro, puoi eseguire bundle exec rake tmp:clear. Suppongo che lo aggiusterò.

+0

Purtroppo ho eliminato il mio vecchio repository quindi non posso testarlo. Speriamo che questo sia utile anche ad altre persone con lo stesso errore. – kwyoung11

+3

Yay ha funzionato !!! – alalani

+14

Per elaborare questa risposta: la causa sembra essere che la cache delle risorse nella cartella tmp è danneggiata. Credo che ciò si verifichi se il processo Rails muore nel momento sbagliato. Quando si tenta di riavviare il server, eseguire test, ecc, la pipeline di asset tenta di leggere la cache danneggiata e soffoca. Ecco perché cancellare la cache risolve il problema. – rlkw1024

2

Ripulire i file temporanei utilizzando le seguenti correzioni di comando questo problema:

rake tmp:clear 
0

Se hai questo problema su Windows, provare ad andare nel file Gemfile.lock e modificando manualmente il valore di coffee-script-source-1.8.0 (il mio ha iniziato come 1.9.1.1). Qualcosa sulle versioni più recenti non funziona bene per qualsiasi motivo.

Problemi correlati