我已运行 ng build --prod
并将 /dist
文件夹的内容复制到动态 Web 项目的 webapps 文件夹内。
然后,我尝试将此项目导出为 .war
文件并将其部署到 Liberty 服务器上。挑战是,我在 environment.prod.ts
中设置了 API URL。
因此,如果我需要更改 API URL,我需要重新运行 ng build
并复制 /dist
的内容,然后导出为 。 war
。
我尝试将 API 基本 URL 设置为 window.location.origin
,因为我们的 Angular 应用程序和微服务的基本 URL 相同。
我们想要的是让 API URL 从外部进行配置。例如,我们创建了最终的 .war 文件,但是当我们将其部署为 docker 上的容器时,我们读取一些配置文件并将其设置为 API URL。
最佳答案
由于您使用的是 Liberty,因此您可以使用 JAX-RS 创建一个端点(JAX-RS 教程 here ),该端点从文件或环境变量中读取您需要的基本 URL(您可以使用标准Java API 或类似 MicroProfile Config )并将它们作为响应返回。将其打包为 .war
文件的一部分。
然后,在startup上,您的 Angular 应用程序可以向此端点发出请求(您将始终知道该端点的位置,因为它与 Angular 应用程序本身来自同一 window.location,只是不同的上下文根和/或路径。 )这将为它提供工作所需的信息。
关于angular - 如何读取配置文件以在打包为 WAR 并部署在 IBM Liberty 上的 Angular 应用程序中设置 API URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56804283/