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

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四​​张图片,如下:

Spring Boot静态资源访问和配置_静态资源

启动项目,分别访问:

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/**

Spring Boot静态资源访问和配置_自定义_02

重启项目,再访问静态资源,需要以​​mystatic​​开头,如下:

http://localhost:8080/springboot09/mystatic/1.jpg

这样,仍可以访问之前的三张图片。如果按照之前 ​​http://localhost:8080/springboot09/2.jpg等路径​​就不能再访问到了

2.2 配置静态资源目录

我们可以在在​​application.yml​​中,增加如下配置,自定义静态文件的配置路径:

Spring Boot静态资源访问和配置_静态资源_03

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

Spring Boot静态资源访问和配置_自定义_04

重启项目,访问:http://localhost:8080/springboot09/mystatic/5.jpg,发现可以正常访问,但是 ​​static 、​​​​resources、​​​​static​​​里静态资源时,就会​​404​​报错,访问不到了,这个是因为配置文件中如果进行了静态资源路径的配置,那么默认的配置就失效了。