【springboot】静态资源访问路径配置
【springboot】静态资源访问路径配置
简介
springboot 默认为我们提供了静态资源处理,使用WebMvcAutoConfiguration中的配置各种属性。
在一般情况下,springboot提供的默认配置方式能够满足需求,如果想要完全控制WebMvc,那么就需要在@Configuration注解的配置类上增加@EnableWebMvc,这样WebMvcConfiguration中的配置就无法生效,所有配置都按照你自定义的进行生效。
但是,通常情况下,我们都是使用springboot的默认配置,如果想要增加自己的额外的配置的时候,就可以定义一个配置类(添加@Configuration的类)然后实现WebMvcConfigurer接口,进行重写其中的相应的方法就可以增加额外的配置
默认映射的文件夹
以下均为静态资源的映射路径
- classpath:/META-INF/resources
- classpath:/resources
- classpath:/static
- classpath:/public
优先顺序为:META-INF/resources>resources>static>public
自定义映射路径
application.yaml配置文件修改
# 默认值为 /**
spring.mvc.static-path-pattern=
# 默认值为 classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开,
实现WebMvcConfigurer接口
如果我们想要自定义静态资源映射目录的话,只需要重写addResourceHandlers方法即可
@Configuration
public class MyWebConfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/api/file/**")
.addResourceLocations("file:D:/java/img/");
}
}
上述例子是指定外部的目录,注意在addResourceLocations指定目录前面需要添加 file:
@Configuration
public class MyWebConfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/api/file/**")
.addResourceLocations("classpath:/myResources/");
}
}
以上例子是指定类路径下的myResources目录下
addResourceHandler 指的是对外暴露的静态资源访问路径
addResourceLocations指的是静态资源文件实际放置的目录
参考链接
Spring Boot 静态资源处理
Springboot中静态资源和拦截器处理(踩了坑)
还没有评论,来说两句吧...