GeXiangDong

精通Java、SQL、Spring的拼写,擅长Linux、Windows的开关机

0%

Spring Boot 项目中的静态资源

Spring Boot项目中,默认支持的静态资源位置

classpath:位置 项目中的目录 优先级
/META-INF/resources/ src/main/resources/META-INF/resources/ 优先级最高
/resources/ src/main/resources/resources/ 第二优先
/static/ src/main/resources/static/ 第三优先
/public/ src/main/resources/public/ 第四优先

@EnableWebMvc 注解

如果项目中没有@EnableWebMvc注解,那么上述静态资源是可以直接被浏览器访问的,如果项目中有@EnableWEbMvc注解,则无法访问了。

这是因为SpringBoot默认启动了自动配置,自动配置配置上述静态资源的访问,而使用@EnableWebMvc注解后,会禁止掉org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration 的自动配置,于是这些不能被访问了。

如果需要@EnableWebMvc注解,又需要静态资源,增加一个自定义的配置:

1
2
3
4
5
6
7
8
9
10
11
12
@Configuration
public class MvcConfig implements WebMvcConfigurer {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// URL访问所有的/css/开头的url,都映射到src/main/resources/statics/css目录下;
// 注意需要classpath:开头
registry.addResourceHandler("/css/**")
.addResourceLocations("classpath:/static/css/");
}

}