如何在构建 Angular 前端并使用 nginx 托管后更改后端 IP?

How to change the Backend IP after the Angular Frontent was built, and hosted with nginx?

对于带有 WebInterface 的项目,我们使用带有 Ubuntu 18.04 的英特尔 NUC。后端已经 运行 在设备上并通过 WebSocket 与前端通信。前端由 WebSever 软件 nginx 托管,并使用 Angular 构建。现在,当我们使用“ng build --prod”构建前端时,后端的 IP 地址已被烘焙。后端 ip 在构建之前设置在 environment.prod.ts 中。

当调用 forontend(带 DNS 或 IP)时,如何使用当前 NUC 地址与后端通信?

目前我们看到的唯一方法是在 ip 更改时重新构建前端,这很糟糕。

感谢您的帮助!

您可以使用在运行时加载的配置文件,并在其中字符串替换部署时的后端 IP。 例如,请参阅此博文:https://christianlydemann.com/implementing-dynamic-environments-in-angular-for-avoiding-one-build-per-environment/

和/或这个 NPM 包:https://www.npmjs.com/package/runtime-config-loader