在使用SpringBoot开发项目时,在配置文件中添加了配置项 spring.mvc.static-path-pattern=/static/**,就是指定了访问项目中的静态资源的url地址需要以/static开头,该配置项和spring.resources.static-locations配置项配合使用,spring.resources.static-locations配置项用于指定静态资源的存放位置。下面介绍这两个配置项。

spring.mvc.static-path-pattern

该配置项是配置springmvc对静态资源访问的映射,该配置项与类WebMvcProperties中的staticPathPattern属性绑定,该类中存放了对springmvc的各种配置,springboot对spingmvc自动配置类在配置springmvc时的配置信息就是从WebMvcProperties的属性中获取到的,当spring.mvc.static-path-pattern=/static/**,对静态资源的请求必须以 /static 开头,比如访问项目的static静态资源文件夹下的js文件夹下的hello.js文件,就需要通过 http://localhost:8080/static/js/hello.js,映射静态资源的方式使用/static/的后面的路径部分,也就是/js/hello.js,到服务器端的static文件夹下按照对应的路径(js/hello.js)去找对应的文件,如果没有配置该配置项,那么在请求时,springmvc会首先根据请求的url查找有没有处理该请求的controller,如果没有就会自动的去项目的静态资源文件下按照请求的url路径找对应的文件,项目的静态资源位置是由 spring.web.resources.static-locations 配置项决定的。

spring.web.resources.static-locations

上面说到了浏览器对静态资源的请求会到项目的静态资源目录下寻找对应的文件,而项目的静态资源的位置的配置就是使用spring.web.resources.static-locations来指定的。配置项的默认值如下所示,springboot默认会按照下面各个路径先后顺序到对应的位置下查找静态资源,也可以在配置文uuu件中进行配置,建议使用默认的就好。

"classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/"
始上面的两个配置项就是springboot自动配置springmvc时使用的,其实就是我们之前学的springmvc的静态资源配置,只不过这个配置由springboot帮我们配好了。

更多推荐

spirngboot静态资源映射spring.mvc.static-path-pattern