Spring Boot替代索引页面

时间:2015-02-19 08:59:21

标签: java spring spring-mvc configuration spring-boot

我的应用程序在后端使用Spring Boot,在前端使用SPA(Angular)站点。目前,我正在从webapp文件夹提供index.html页面,该文件夹自动无需配置。现在我使用gulp为前端集成了一个构建过程,所有创建的源都被复制了#34;进入build目录。现在我想将index.html目录中的build文件作为主页提供。

我尝试了spring.application.index=build/index.html和其他一些弹簧启动设置,但没有任何效果。我相信我目前的代码库不需要任何代码,但如果遗漏任何内容,请告诉我。

有没有办法在applications.properties文件中配置它?我是否需要为索引页面创建控制器?或者还有其他方法可以更改默认行为吗?

感谢

1 个答案:

答案 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>