我有一个spring-boot网络应用程序,我使用angular-cli构建我的前端。我已将angular-cli.json
中我的角度构建的输出目录设置为resources / static,我已在package.json
中配置了构建脚本,如下所示:
"scripts" : {"build": "ng build --base-href /mywebapp", ...}
在spring-boot配置的application.properties中,我将server.contextPath
设置为'mywebapp'。
但是,如果我构建角度应用程序,则resources / static中创建的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/。
如果我不想在tomcat服务器上部署一个具有angular-frontend的spring-boot应用程序,如果我不想在根目录下部署它?
答案 0 :(得分:1)
请查看我使用&#39; - deploy-url&#39;的答案。参数。 https://stackoverflow.com/a/43741602/5633515
在您的情况下,请使用--deploy-url="/mywebapp/"
答案 1 :(得分:0)
我有同样的问题,首先我创建了一个pom.xml文件,然后我使用插件将我的包转换为war文件。
<plugins>
<!-- ############################## -->
<!-- npm scripts -->
<!-- ############################## -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>exec-project-dependencies-install</id>
<phase>generate-sources</phase>
<configuration>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
<!-- run `ng build -prod -aot` -->
<!-- * clean dist/ before generating distribution files -->
<execution>
<id>exec-compile</id>
<phase>generate-sources</phase>
<configuration>
<executable>npm</executable>
<arguments>
<argument>run</argument>
<argument>ci</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- generate zip -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptors>
<descriptor>src/assembly/static.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<!--generate zip -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptors>
<descriptor>src/assembly/static.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
部署时我发现了一些问题和好的讲座。
理论 - https://kosbr.github.io/2016/10/09/angular-build.html
问题 - https://github.com/angular/angular-cli/issues/4517 - https://github.com/angular/angular-cli/pull/4090
希望它有所帮助。