我的应用程序在后端使用Spring Boot,在前端使用SPA(Angular)站点。目前,我正在webapp
文件夹中提供index.html页面,它可以自动工作,无需配置。现在,我使用gump为前端集成了一个构建过程,所有创建的源都被"复制"到build
目录中。现在,我想将build
目录中的index.html
文件作为主页。
我尝试了spring.application.index=build/index.html
和其他一些弹簧引导设置,但都不起作用。我相信我目前的代码库中不需要任何代码,但如果有什么遗漏,请告诉我。
有没有办法在applications.properties
文件中对此进行配置?我需要为索引页创建一个控制器吗?或者有其他方法可以更改默认行为吗?
感谢
根据常见的Spring Boot属性,您应该能够修改此属性:
spring.application.index=
诚然,我确实倾向于用@RequestMapping("/")
创建一个最小的"主"控制器。:)
值得注意的是,如果build
目录位于src/main/resources
之下,那么它只会在类路径上。同样值得一提的是,src/main/webapp
的内容不会自动绑定到jar中。src/main/resources/static
是Spring Boot查找静态web文件的地方。因此,你有几个选择。
选项1:将Grunt构建配置为输出到src/main/resources/static
下的目录。
选项2:将Java构建工具配置为获取Grunt输出,并将其放在resources目录中,使其位于类路径中。例如,使用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>