我正在Go中开发一个Web服务,它将其UI委托给一个与webpack
打包在一起的vue.js
网站。
My Go服务负责托管UI和UI使用的REST API。
在开发模式下,我希望受益于vue.js
和webpack
工具(例如基于inotify的自动重载),所以我在Go程序中添加了一个开关,用于执行此操作: / p>
var handler http.Handler
if isDevelopment {
// url below points to the webpack standalone
// development server, at http://localhost:8080.
proxy := httputil.NewSingleHostReverseProxy(url)
proxy.FlushInterval = time.Millisecond * 100
handler = proxy
} else {
handler = http.FileServer(http.Dir("www"))
}
基本上,在开发模式下,我可以启动webpack的开发服务器(带npm run dev
),我的Go程序会将所有UI请求委托给它。
这会产生奇迹,但几秒钟后,Chrome会抱怨:
获取http://localhost:9999/__webpack_hmr net :: ERR_INCOMPLETE_CHUNKED_ENCODING
自动刷新停止工作一段时间并最终回来,但它比我直接连接到webpack的独立服务器的速度慢。
我认为可以在Go httputil.ReverseProxy
中追踪问题,我相信它没有任何特定的代码来正确处理事件源。
这是一个知道问题吗?有什么办法可以让我的Go反向代理事件源识别/兼容吗?