【发布时间】:2017-10-22 06:45:53
【问题描述】:
我有一个 spring-boot web 应用程序,我使用 angular-cli 构建我的前端。我已将 angular-cli.json 中的 Angular 构建的输出目录设置为 resources/static,并且我已在 package.json 中配置了构建脚本,如下所示:
"scripts" : {"build": "ng build --base-href /mywebapp", ...}
在 spring-boot 配置的 application.properties 中,我将 server.contextPath 设置为“mywebapp”。
但如果我构建 Angular 应用程序,资源/静态中创建的 index.html 的包含 js 文件不包含服务器上下文路径“mywebapp”:
<script type="text/javascript" src="inline.bundle.js"></script>
<script type="text/javascript" src="polyfills.bundle.js"></script>
但我应该是这样的:
<script type="text/javascript" src="/mywebapp/inline.bundle.js"></script>
<script type="text/javascript" src="/mywebapp/polyfills.bundle.js"></script>
因此,如果我将 spring-boot 应用程序部署到 tomcat,则构建的 index.html 已加载,但它找不到导入的 js 文件,并尝试加载 http://localhost:8080/ 而不是 http://localhost:8080/mywebapp/ 下的文件。
如果我不想在根目录下部署带有 angular-frontend 的 spring-boot 应用程序,如何将它部署到 tomcat 服务器?
【问题讨论】:
-
很有趣,因为你在问怎么做,你实际上展示了怎么做,我找不到。您真正的问题是“如何将 Angular 和 Spring 部署到某个路径?”。
标签: spring angular tomcat spring-boot angular-cli