Tôi nhận được một lỗi tôi dường như không thể tìm ra nguyên nhân của:EOF lỗi javascript_include_tag Rails 4
EOF Error end of file reached
gọi từ /app/views/layouts/application.html.erb, dòng 6 :
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Trong trường hợp ruby, lỗi EOF là phân lớp của IOError và được nâng lên bởi thao tác IO đến cuối tệp.
Dưới đây là một số những gì tôi đã phát hiện ra cho đến nay:
Sử dụng:
<%= javascript_include_tag :defaults, "data-turbolinks-track" => true %>
... hoặc ...
<%= javascript_include_tag :all, "data-turbolinks-track" => true %>
hoặc thậm chí liệt kê ra js cá nhân tập tin qua javascript_include_tag làm việc để loại bỏ lỗi EOF.
Tôi nghĩ điều này có thể do một số chỉ thị sprockets gây ra, vì vậy tôi đã xóa tất cả các chỉ thị trong application.js. Điều này đã không thay đổi bất cứ điều gì.
Chạy tài sản cào: precompile cũng mang lại cho tôi:
rake aborted!
end of file reached
Chạy git diff
vào ứng dụng/tài sản/Javascripts thư mục cho thấy 1 điều mà bạn có thể lưu ý trong một file .js tôi đã được chỉnh sửa gần đây:
+$(document).on('ready page:load', function() {
+
+ // some code I had written
+
+});
\ No newline at end of file
Điều đó "không có dòng mới ở cuối tệp" bit ... Tôi chưa bao giờ thấy điều đó trước đây. Tuy nhiên, tôi vừa chèn một dòng mới vào cuối cùng một tệp và cam kết thay đổi, và nhận xét đó giờ đã biến mất khỏi sự khác biệt.
EDIT: Chỉ trình duyệt của tôi với localhost: 3000/tài sản/application.js mang lại cho tôi điều này:
throw Error("EOFError: end of file reached")
Tôi hoàn toàn bối rối và đã cố gắng để gỡ lỗi này cho cả ngày. Tại sao lỗi này xảy ra? Đây là stacktrace từ khi tôi chạy tài sản rake: 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>'
Tôi bắt đầu gặp sự cố tương tự này trong vài ngày qua. Tôi đã không phát triển đường ray vào cuối tuần nhưng đã sử dụng nvm để cài đặt các phiên bản mới nhất của các gói kịch bản lệnh node và npm coffee-script. Nó không có ý nghĩa với tôi rằng điều này sẽ có tác động đến ứng dụng đường ray của tôi nhưng có thể nó? – jkndrkn