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自定义错误页面,Whitelabel Error Page处理方式
为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析