问题描述
Spring Boot项目,目录结构如下图。理论上讲,resources/static目录下的index.html应该会被映射到http://127.0.0.1:8080/路径下,但是实际请求却发现返回404。

环境:Spring Boot 2.1.6.RELEASE
解决方案
代码如下,在Spring MVC的配置类WebMvcConfigurer中,不要加@EnableWebMvc注解。
@Configuration
//@EnableWebMvc // 删掉这里
public class WebMvcConfig implements WebMvcConfigurer {
}
追根探底
Spring Boot官方文档中有这么一段。
Spring Boot 提供了对 Spring MVC 的自动配置,这些自动配置使用与大多数应用。
…
- 对静态资源映射支持…
…- 默认首页
index.html。
…
如果需要…的自定义配置,可以使用@Configuration注解WebMvcConfigurer,但是不要添加@EnableWebMvc注解。…
如果想要完全控制 Spring MVC,可以同时添加@Configuration和@EnableWebMvc注解。
本文解决了一个常见的SpringBoot项目问题,即在访问http://127.0.0.1:8080/时出现404错误,尽管index.html位于resources/static目录下。问题在于@WebMvcConfigurer的实现类中误用了@EnableWebMvc注解,导致SpringBoot默认的静态资源映射被覆盖。移除该注解后,问题得以解决。


427

被折叠的 条评论
为什么被折叠?



