我的应用程序在后端使用Spring Boot,在前端使用SPA(Angular)站点。目前,我正在从webapp
文件夹提供index.html页面,该文件夹自动无需配置。现在我使用gulp为前端集成了一个构建过程,所有创建的源都被复制了#34;进入build
目录。现在我想将index.html
目录中的build
文件作为主页提供。
我尝试了spring.application.index=build/index.html
和其他一些弹簧启动设置,但没有任何效果。我相信我目前的代码库不需要任何代码,但如果遗漏任何内容,请告诉我。
有没有办法在applications.properties
文件中配置它?我是否需要为索引页面创建控制器?或者还有其他方法可以更改默认行为吗?
感谢
答案 0 :(得分:10)
通过common Spring Boot properties,你应该能够修改这个属性:
spring.application.index=
不可否认,无论如何,我确实倾向于使用@RequestMapping("/")
创建一个最小的'home'控制器。 :)
值得注意的是,如果build
目录位于src/main/resources
下,它将只在类路径上。还值得一提的是src/main/webapp
的内容不会自动捆绑到jar中。 src/main/resources/static
是Spring Boot寻找静态Web文件的地方。因此,有几种选择。
选项1:配置您的Grunt构建以输出到src/main/resources/static
下的目录。
选项2:配置Java构建工具以获取Grunt输出并将其放在资源目录中,以便它位于类路径中。例如,使用Maven,以下内容会将名为build
的目录的内容移动到您的src/main/rescources/static
。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static</outputDirectory>
<resources>
<resource>
<directory>build</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>