【问题标题】:Rails web app: Rack app error handling request { GET /packs/js/application-682c14949987e19a8380.js }Rails Web 应用程序:机架应用程序错误处理请求 { GET /packs/js/application-682c14949987e19a8380.js }
【发布时间】:2020-11-18 12:00:43
【问题描述】:

当我在本地版本的 Rails 6 应用程序上加载主视图(或任何视图)时,我正在通过 localhost 使用 webpack-dev-server 运行该应用程序,页面将加载,但不是我的 javascript当 webpack 在我的 app/javascript/packs 目录中调用 application.js 时,继续得到以下内部服务器错误:

    2020-07-28 18:04:57 -0500: HTTP parse error, malformed request ():
    #<Puma::HttpParserError: Invalid HTTP format, parsing fails.
    
    --- 
    2020-07-28 18:04:57 -0500: Rack app error handling request { GET /packs/js/application-682c14949987e19a8380.js }
    
    #<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: wrong version number>

之后是一些更无关/模糊的信息。 当我运行 bin/webpack-dev-server 时,一切(我假设)都很顺利:

ℹ 「wds」: Project is running at https://localhost:3000/

ℹ 「wds」: webpack output is served from /packs/

ℹ 「wds」: Content not from webpack is served from /home/gabe/domus/public/packs

ℹ 「wds」: 404s will fallback to /index.html

ℹ 「wdm」: Hash: 6c3a88060d923134f5c3

Version: webpack 4.44.0

Time: 1399ms

Built at: 07/28/2020 5:51:22 PM

                                    Asset       Size       Chunks                         Chunk Names

   js/application-682c14949987e19a8380.js    508 KiB  application  [emitted] [immutable]  application

js/application-682c14949987e19a8380.js.map    572 KiB  application  [emitted] [dev]        application

                            manifest.json  364 bytes               [emitted]

ℹ 「wdm」: Compiled successfully.

在我的 application.html.slim 文件中,我使用 javascript_pack_tag 调用 application.js 文件:

html
  head
    title Domus
    = csrf_meta_tags
    = csp_meta_tag

    = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
    = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'

  body
    = yield

我的 webpacker.yml 文件看起来像这样:

default: &default
  source_path: app/javascript
  source_entry_path: packs
  public_root_path: public
  public_output_path: packs
  cache_path: tmp/cache/webpacker
  check_yarn_integrity: false
  webpack_compile_output: true

  resolved_paths: []

  cache_manifest: false

  extract_css: false

  static_assets_extensions:
    - .jpg
    - .jpeg
    - .png
    - .gif
    - .tiff
    - .ico
    - .svg
    - .eot
    - .otf
    - .ttf
    - .woff
    - .woff2

  extensions:
    - .mjs
    - .js
    - .sass
    - .scss
    - .css
    - .module.sass
    - .module.scss
    - .module.css
    - .png
    - .svg
    - .gif
    - .jpeg
    - .jpg

development:
  <<: *default
  compile: true

  check_yarn_integrity: true

  dev_server:
    https: true
    host: localhost
    port: 3000
    public: localhost:3000
    hmr: false
    inline: false
    overlay: true
    compress: true
    disable_host_check: true
    use_local_ip: false
    quiet: false
    pretty: false
    headers:
      'Access-Control-Allow-Origin': '*'
    watch_options:
      ignored: '**/node_modules/**'

我不太确定还能尝试什么。任何帮助将不胜感激!

【问题讨论】:

  • 我认为问题可能是 webpack 没有在 packs 目录中创建 manifest.json 文件。
  • 你是如何解决这个问题的?

标签: javascript html ruby-on-rails webpack puma


【解决方案1】:

我通过先运行 bin/webpack-dev-server 然后运行 ​​rails s 来解决此问题

【讨论】:

    【解决方案2】:

    你必须在不同的端口上运行你的 Rails 服务器和 webpack-dev-server,Rails 通常运行在 3000 端口,而 webpacker 默认使用 3035,所以在 webpacker.yml 中确保使用不同的端口:

        port: 3035
        public: localhost:3035
    

    您可能还需要在 webpacker.yml 中禁用 https,具体取决于您的设置。

    【讨论】:

      猜你喜欢
      • 2019-05-19
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      相关资源
      最近更新 更多