Spring Boot备选索引页面

9
我的应用程序在后端使用Spring Boot,在前端使用SPA(Angular)网站。目前,我从webapp文件夹中提供index.html页面,无需配置即可自动工作。现在,我集成了一个使用gulp的构建过程,所有创建的源都被“复制”到build目录中。现在,我想从build目录中提供index.html文件作为我的主页。
我尝试过spring.application.index=build/index.html和一些其他Spring Boot设置,但没有任何作用。我认为不需要从我的当前代码库中添加任何代码,但如果有任何遗漏,请让我知道。
是否有一种方法可以在applications.properties文件中进行配置?我需要为索引页面创建一个控制器吗?还是有其他改变默认行为的方式?
谢谢

我们能否了解更多关于您的配置信息? - bmscomp
1个回答

10
根据Spring Boot常用属性,您应该能够修改此属性:
spring.application.index=

诚然,我通常会创建一个最小的“home”控制器并添加@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输出并将其放入资源目录中,以便它位于类路径上。例如,使用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>

我尝试了"/build/index.html"、"build/index.html"、"classpath:build/index.html"和其他一些版本,但都没有改变。我还尝试了来自http://stackoverflow.com/questions/27836584/spring-boot-override-index-page-from-webjar的建议解决方案。我将尝试使用一个“home”控制器。 - KenavR
好的,主控制器已经工作了,我想我会就这样离开,不浪费时间去弄清楚为什么其他方法没有起作用,谢谢。 - KenavR
我不确定它们是否是有用的替代方案,但我已经添加了一些选项来配置构建,将Grunt生成的资源移动到正确的位置。但是,如果控制器中的几行代码对您有效,那么就像您所说的那样,可能没有必要花太多时间进行实验。 - Steve
哦,你提供的链接没有任何关于spring.application.index属性的参考吗? - Changdae Park

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接