记录一下Spring中对静态资源的处理。文中的程序在这里,springboot版本为2.6.3。
2、 默认对静态资源的处理默认创建的Spring Boot工程,一般都会存在resources/static目录,通常情况下放在这个目录里的静态资源,比如图片、html页面、js文件等,都是可以直接访问的。在Spring Boot工程中这几个地方可以放置静态资源,它们分别是:
classpath:/meta-INFclasspath:/resources/classpath:/static/classpath:/public/
例如,如果把test.html文件放到static目录下,就可以通过http://localhost/test.html访问该文件,放在上述其他目录中,也可以实现同样的目的。 2.1 自定义路径模式
默认情况下,Spring Boot在请求的根下处理所有的静态资源(/**),什么意思呢,也就是说在ip+port/后直接跟资源的名称即可访问到资源,这是默认配置,当然通过改变spring.mvc.static-path-pattern配置属性是可以改变这一默认访问路径的。
比如现在想通过http://localhost:8080/test/test.html访问test.html文件,可以在application.properties配置文件中加如下内容:
spring.mvc.static-path-pattern=/test/**
在WebFlux 环境中,对应的需要设置的属性为spring.webflux.static-path-pattern属性。
2.2 自定义静态资源存储路径既然默认的访问路径模式可以更改,静态资源的放置目录也是可以更改的,此时只需要在配置文件中添加如下内容即可:
spring.web.resources.static-locations=classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/tools/
当spring.web.resources.static-locations有多个值的时候,可以使用逗号进行分割,其中tools即是自己创建的用户放置静态资源的目录。
此外,还可以在类路径外的目录中放置静态资源,即在本地文件系统中进行放置:
Linux系统中:spring.web.resources.static-locations=file:/opt/fileswindows系统中:spring.web.resources.static-locations=file:///D:/