【问题标题】:Using javascript_pack_tag in rails causes EOFError在 rails 中使用 javascript_pack_tag 会导致 EOFError
【发布时间】:2020-05-28 02:04:57
【问题描述】:

似乎 public/packs/js 中的文件无法加载。

这些是视图中的 javascript 标签:

= javascript_include_tag 'application'
= javascript_pack_tag 'application'

浏览器控制台报错:

net::ERR_ABORTED 500 (Internal Server Error)

这是来自 rails 日志的错误:

2020-05-27 11:04:05 -0400: Rack app error handling request { GET /packs/js/application-94e1ca1d6a639b3ce542.js }
#<EOFError: end of file reached>
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:225:in `rbuf_fill'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:191:in `readuntil'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:201:in `readline'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/2.6.0/net/http/response.rb:40:in `read_status_line'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/2.6.0/net/http/response.rb:29:in `read_new'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rack-proxy-0.6.5/lib/net_http_hacked.rb:53:in `begin_request_hacked'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rack-proxy-0.6.5/lib/rack/http_streaming_response.rb:60:in `response'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rack-proxy-0.6.5/lib/rack/http_streaming_response.rb:29:in `headers'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:120:in `perform_request'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/webpacker-4.0.7/lib/webpacker/dev_server_proxy.rb:27:in `perform_request'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:57:in `call'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/railties-5.1.7/lib/rails/engine.rb:522:in `call'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/puma-4.3.3/lib/puma/configuration.rb:228:in `call'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/puma-4.3.3/lib/puma/server.rb:682:in `handle_request'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/puma-4.3.3/lib/puma/server.rb:472:in `process_client'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/puma-4.3.3/lib/puma/server.rb:328:in `block in run'
/Users/usr/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/puma-4.3.3/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
2020-05-27 11:04:05 -0400: Rack app error handling request { GET /packs/js/application-94e1ca1d6a639b3ce542.js }

我已经重新安装了所有 gem、node 和 webpacker,但问题仍然存在。我在某处读到 rbuf_fill 可能需要 https,但我不确定在哪里检查或进行哪些更改。有人有什么想法吗?

【问题讨论】:

  • 可能与 Javascript 文件本身有关? application.js 文件结束问题。您的文件是否提前结束?
  • 我已从 application.js 中删除所有内容,再次编译资产并重新启动服务器。问题依然存在

标签: javascript ruby-on-rails reactjs npm


【解决方案1】:

我想通了。我在 Docker 中运行了另一个 Rails 应用程序。停止容器后问题以某种方式解决。

【讨论】:

  • 感谢您分享您的答案!在关闭了在 docker-compose 设置中运行的完全不同的应用程序后,也为我工作......
  • 这解决了我的问题,非常感谢!我有一个运行端口 3035 的 bin/webpack-dev-server 并且 docker 中的一个应用程序也在使用它。