Ошибка 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
). Что-то о более новых версиях не играет никакой пользы по любой причине.