Spring Boot 替代索引页面

Posted

技术标签:

【中文标题】Spring Boot 替代索引页面【英文标题】:Spring Boot alternative index page 【发布时间】:2015-04-20 13:07:56 【问题描述】:

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

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

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

谢谢

【问题讨论】:

我们能否了解更多关于您的配置的信息 【参考方案1】:

通过common Spring Boot properties,你应该可以修改这个属性:

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 输出并将其放在资源目录中,使其位于类路径中。例如,使用 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”和其他一些版本,没有任何变化。我还尝试了来自 -***.com/questions/27836584/… 的建议解决方案。我将尝试使用“家庭”控制器。 好吧,家庭控制器工作了,我想我会离开那里,不会浪费时间去弄清楚为什么其他方式没有,谢谢。 我不确定它们是否是有用的替代品,但我添加了一些关于如何配置构建以将 Grunt 生成的资源移动到正确位置的选项。但是,如果控制器中的几行代码对您有用,那么正如您所说,可能不值得花太多时间进行实验。 Hrmm...您提供的链接没有对属性 spring.application.index 的任何引用?

以上是关于Spring Boot 替代索引页面的主要内容,如果未能解决你的问题,请参考以下文章

索引页面不起作用,但 api 适用于 AWS beanstalk Spring Boot

在spring boot中实现自定义错误

Spring Boot自定义错误页面,Whitelabel Error Page处理方式

Spring Boot使用thymeleaf模板

spring boot:thymeleaf使用详解

为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析