Docker sockjs节点路径被webpack dev server baseUrl覆盖

Docker sockjs节点路径被webpack dev server baseUrl覆盖,docker,nginx,vue.js,webpack-dev-server,sockjs,Docker,Nginx,Vue.js,Webpack Dev Server,Sockjs,nginx.conf(在docker compose的8900端口上公开) vue.config.js module.exports = { baseUrl: process.env.NODE_ENV === 'docker' ? '/serve' : '/' } 在浏览器中,转到: 本地主机:8900/台 页面得到良好的服务,但是,webpack dev server HMR不工作,因为对sockjs的调用现在是/service,而不是/service/sockjs node: 邮政40

nginx.conf(在docker compose的8900端口上公开)

vue.config.js

module.exports = {
  baseUrl: process.env.NODE_ENV === 'docker' ? '/serve' : '/'
}
在浏览器中,转到:

本地主机:8900/台

页面得到良好的服务,但是,webpack dev server HMR不工作,因为对sockjs的调用现在是
/service
,而不是
/service/sockjs node

邮政404(未找到)

我假设这可以通过设置devServer.proxy而不是baseUrl来解决,但是我找不到正确的配置

我需要的是:
/
->应转到
http://localhost:8900/serve

/api
->应转到
http://localhost:8900/api


/sockjs节点
->应转到
http://localhost:8900/serve/sockjs-节点

通过以下方式解决了该问题:

devServer: {
    proxy: {
        "/serve": {
            target: "http://localhost:8900",
            pathRewrite: { "^/serve": "/sockjs-node" },
        },
    }
}

我们可以使用sockPath选项更改默认套接字路径:

module.exports = {
    //...
        devServer: {
        sockPath: 'path/to/socket',
    }
};
以下是:

sockPath: '/serve/sockjs-node', 

你最终弄明白了吗?我也有同样的问题尼斯!但是你不会把所有的请求路由到sockjs吗?我只希望websocket连接路由到/sockjs节点,而/api请求路由到/api。我相信你的解决方案让我走上了正确的道路,我会尝试一下。
sockPath: '/serve/sockjs-node',