在 Spring Boot 中将 Angular 环境变量传递给编译的静态 Angular 文件
Posted
技术标签:
【中文标题】在 Spring Boot 中将 Angular 环境变量传递给编译的静态 Angular 文件【英文标题】:Pass Angular environment variables to compiled static angular files in spring boot 【发布时间】:2020-10-15 11:31:08 【问题描述】:我现在正在使用 Angular 和 Spring Boot 来构建网站项目。当我们部署时,我们将ng build --output-path=../spring-boot-project/src/main/resources/static",
angular 并在spring boot 中生成一个静态文件夹,如/resource/static
。然后我们构建一个 .jar 文件并将其部署到我们的产品(或实验室)环境。
所以当我们运行 .jar 文件时,我们如何将一些环境变量传递给 angular 部分(spring boot 项目中的静态文件)。
更具体地说,我想在spring boot application.yml中设置角度环境:
spring:
profiles:
active: dev
main:
banner-mode: "off"
---
spring:
profiles: dev
angular.v1: "something1_dev"
angular.v2: "something2_dev"
---
spring:
profiles: prod
angular.v1: "something1_prod"
angular.v2: "something2_prod"
我怎样才能将这些值(由于不同的配置文件而不同的值)传递到角度侧?
【问题讨论】:
不完全是您要查找的内容,但请查看 ***.com/questions/59249434/…。因此,除非您使用服务器端渲染,否则我会将 angular 和 spring 分开 【参考方案1】:您所问的问题是,一旦您将角度生成的文件放在静态文件夹下,springboot 会将文件视为静态资产,并且不会使用任何模板引擎让我们将任何进一步的数据绑定到文件.它将接收请求,如果它与资产匹配,它将直接为它提供服务。
为了使您的用例正常工作,您必须在 Angular 构建本身中设置 Angular 环境。您可以做的是,像使用 maven 配置文件一样对角度构建进行参数化,以便您可以使用 maven 命令本身控制角度构建。您可能正在使用front-end-builder
插件来触发正确的角度构建。因此,在这种情况下,当您提供npm run-script
命令时,您可以通过在package.json
中提供不同的命令来提供您想要运行的自定义命令。对于构建设置阅读:How to integrate an Angular 4 app with a Spring Boot stack?
【讨论】:
感谢您的回答。现在我已经将 angular 与弹簧靴堆栈集成在一起,它可以工作。我的问题:当 Angular ui 项目已经作为 Spring Boot 中的静态资源时,有没有办法将 Angular 环境变量传递给 Angular。以上是关于在 Spring Boot 中将 Angular 环境变量传递给编译的静态 Angular 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 spring-boot 项目中将 CSS 等静态文件放在哪里?
无法在 Spring Boot 中将 Flyway 迁移与 postgresQL 连接起来