Spring Boot静态资源访问和配置

一、静态资源默认映射规则

Spring Boot 默认将 / 所有访问映射到以下目录:**

classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources

本质上就是在resources目录下创建static、public、resource或者/META-INF/resources 来存放静态文件,这几个任选其一就行,一般使用static,后面,在resources下新建staticpublicresources四个文件夹,分别放入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 默认会挨个从 publicresources、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的拦截,否则会被拦截,图片也是无法访问:

posted @ 2022-11-22 13:38  酒剑仙*  阅读(2820)  评论(0)    收藏  举报