关于express 4.17.1配置http2,之前使用spdy,在跳转某些页面下会失败。报错
然后升级到express 5.0 alpha,使用http2模块,又报错
这两个问题我去找了,两个库都有issue,并且都还处于未修复的状态...
有没有大佬成功配置过基于express + http2的webpack开发服务器的?
关于express 4.17.1配置http2,之前使用spdy,在跳转某些页面下会失败。报错
然后升级到express 5.0 alpha,使用http2模块,又报错
这两个问题我去找了,两个库都有issue,并且都还处于未修复的状态...
有没有大佬成功配置过基于express + http2的webpack开发服务器的?
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读
先说一下环境:express4.X + spdy + http-proxy-middleware实现本地dev server的HTTP2环境。
问题是:大部分情况下正常,但遇到请求某些静态资源的时候,比如说某个js文件,请求状态显示200,但chrome显示请求未完成,如下图

然后导致了整个页面无法加载,因为是单页应用,只有1个vendor.js,所有页面加载逻辑都在里面。
于是换成了另一个随便写的js文件,能够正常加载。说明是js文件内容和目前的http2环境冲突了。
于是又继续排查,换成http1.1正常,生产环境ngxin http2环境也正常。那么就只有可能是本地的spdy的http2和http-proxy-middleware的问题了。
目前排查到的原因,大概率是因为http-proxy-middleware中间件在代理Http2请求后,返回没有完成res.end, 造成的请求某些资源会一直处于未完成状态。解决方案是暂时通过proxy的钩子,自己主动去触发新的请求,绕过proxy的原本代理的请求