2

我有一个项目,我们使用 webpack 的 devserver 进行本地开发。我们还有用于实时重新加载的热模块替换:热模块替换

我们的前端在 docker 中运行。有了这个前端,我们还有 apache 的 mod_proxy。想法是让所有 http 调用都通过 mod_proxy。所以浏览器会将http发送到mod_proxy,然后代理到前端。这在没有热模块更换的情况下运行良好。但由于某种原因,我们无法进行热模块更换工作。我猜这是因为热模块替换使用网络套接字,并且默认情况下未启用通过 apache 的 mod_proxy 隧道网络套接字调用?

有人能够做到这一点吗?你是怎么做到的?开发服务器/热模块更换需要哪些配置?你是否使用了 apache 的 mod_proxy web socket 隧道:mod_proxy_wstunnel,你是如何配置它的?您不需要回答之前列出的所有子问题,我只需要有关如何使其工作的信息。

4

1 回答 1

1

答:是的。我可以在 Apache2 中使用以下配置来实现它

<Location /sockjs-node>
        RequestHeader set Host "localhost:4200"
        RequestHeader set Origin "http://localhost:4200"
        ProxyPass ws://localhost:4200/sockjs-node
        ProxyPassReverse ws://localhost:4200/sockjs-node
        CacheDisable on
</Location>
<Location /sockjs-node/info>
        ProxyPass http://localhost:4200/sockjs-node/info
        ProxyPassReverse http://localhost:4200/sockjs-node/info
        CacheDisable on
</Location>

B. 我的 apache2 服务器启用了 mod_proxy 和 mod_proxy_wstunnel。

C. 我将这个配置用于我的 Angular 7 开发。

于 2019-01-31T10:17:10.587 回答