Rails web应用程序:机架应用程序错误处理请求{GET/packs/js/application-682c1494



当我在本地版本的Rails6应用程序上加载主视图(或任何视图(时,我将通过localhost与webpack-dev服务器一起运行该应用程序,页面将加载,但不会加载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服务器时,一切(我假设(都会顺利进行:

ℹ 「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/**'

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

我通过先运行bin/webpack-dev-server,然后运行rails s解决了这个问题

您必须在不同的端口中运行rails服务器和webpack-dev服务器,rails通常在端口3000中运行,而webpacker默认使用3035,因此在webpacker.yml中确保使用不同的端口:

port: 3035
public: localhost:3035

根据您的设置,您可能还必须禁用webpacker.yml中的https

相关内容

最新更新