Ошибка EOF javascript_include_tag Rails 4

Я получаю сообщение об ошибке. Я не могу понять причину:

EOF Error end of file reached 

вызван из /app/views/layouts/application.html.erb, строка 6:

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

В рубине ошибка EOF является подклассом IOError и повышается операцией ввода-вывода, достигающей конца файла.

Вот некоторые из тех, что я обнаружил до сих пор:

Использование:

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

... или...

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

или даже перечисление отдельных файлов js через javascript_include_tag для удаления ошибки EOF.

Я думал, что это может быть вызвано некоторыми директивами sprockets, поэтому я удалил все директивы в application.js. Это ничего не меняло.

Запуск rake assets: precompile также дает мне:

rake aborted!
end of file reached 

Запуск git diff в каталоге app/assets/javascripts показывает 1 вещь, которая может быть замечена в файле .js, который я недавно редактировал:

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

То, что "нет новой строки в конце файла" бит... Я никогда не видел этого раньше. Тем не менее, я просто вставил новую строку в конце того же файла и зафиксировал изменение, и этот комментарий теперь исчез из diff.

EDIT: Указание моего браузера на localhost: 3000/assets/application.js дает мне следующее:

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

Я полностью зациклен и пытался отладить это в течение всего дня. Почему эта ошибка возникает? Вот stacktrace, когда я запускаю 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>'

Ответы

Ответ 1

Попробуйте удалить локальный каталог проекта и проверить новую копию.

Сегодня я столкнулся с неудачным запуском сервера rails, который, возможно, оставил мою систему в несогласованном состоянии и привел к той же точной ошибке, с которой вы столкнулись. Рубин 2.0.0-p0 segfault остановил запуск сервера rails, после чего я не смог загрузить какие-либо страницы из-за вышеупомянутой ошибки.

Я не знаю точно, что вызвало этот первоначальный сбой, к сожалению. К счастью, мне больше не нужно заниматься этим с моей стороны!

Ответ 2

Если у вас все еще есть ваше старое репо, вы можете запустить bundle exec rake tmp:clear. Я считаю, что это исправит.

Ответ 3

Очистка временных файлов с помощью следующей команды устраняет эту проблему:

rake tmp:clear

Ответ 4

Если у вас возникла эта проблема в Windows, попробуйте войти в ваш файл Gemfile.lock и вручную измените значение coffee-script-source на 1.8.0 (мой запуск начался как 1.9.1.1). Что-то о более новых версиях не играет никакой пользы по любой причине.