Spring Boot静态资源访问和配置
一、静态资源默认映射规则
Spring Boot 默认将 / 所有访问映射到以下目录:**
classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources
本质上就是在resources目录下创建static、public、resource或者/META-INF/resources 来存放静态文件,这几个任选其一就行,一般使用static,后面,在resources下新建static、public和resources四个文件夹,分别放入2.jpg、3.jpg和4.jpg四张图片,如下:

启动项目,分别访问(注意这里如果基于拦截器之前的环境做,就会出现问题,先把拦截器关闭掉,去掉上面的注解即可,最下面说了拦截器怎么处理):
http://localhost:8080/springboot09/2.jpg http://localhost:8080/springboot09/3.jpg http://localhost:8080/springboot09/4.jpg
发现都能正常访问相应的图片资源。那么说明,Spring Boot 默认会挨个从 public、resources、static和 /META-INF/resources 里面找是否存在相应的资源,如果有则直接返回。
二、在application.properties或者application.yml文件中自定义静态资源映射规则
2.1 配置静态资源访问路径
在application.yml中配置静态资源文件为mystatic如下:
spring:
mvc:
static-path-pattern: /mystatic/**

重启项目,再访问静态资源,需要以mystatic开头,如下:
http://localhost:8080/springboot09/mystatic/1.jpg
这样,仍可以访问之前的三张图片。如果按照之前 http://localhost:8080/springboot09/2.jpg等路径就不能再访问到了
2.2 配置静态资源目录
我们可以在application.yml中,增加如下配置,自定义静态文件的配置路径:

创建myres作为自定义的静态文件路径:

重启项目,访问:http://localhost:8080/springboot09/mystatic/5.jpg,发现可以正常访问,但是 static 、resources、static里静态资源时,就会404报错,访问不到了,这个是因为配置文件中如果进行了静态资源路径的配置,那么默认的配置就失效了。
但是需要注意,如果配置类拦截器,需要设置允许排除对于mystatic的拦截,否则会被拦截,图片也是无法访问:


浙公网安备 33010602011771号