当我在本地版本的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
。