SpringBoot:如何配置静态资源的地址与访问路径
静态资源,例如HTML⽂件、JS⽂件,设计到的Spring Boot配置有两项,⼀是“spring.mvc.static-path-pattern”,⼀
gilt是“sources.static-locations”,很多⼈都难以分辨它们之间的差异,所以经常出现的结果就是404错误,⽆法找到静态资源。
1. “spring.mvc.static-path-pattern”
spring.mvc.static-path-pattern代表的含义是我们应该以什么样的路径来访问静态资源,换句话说,只有静态资源满⾜什么样的匹配条件,Spring Boot才会处理静态资源请求,以官⽅配置为例:
# 这表⽰只有静态资源的访问路径为/resources/**时,才会处理请求
spring.mvc.static-path-pattern=/resources/**,
2. “sources.static-locations”
hint是什么意思
“sources.static-locations”⽤于告诉Spring Boot应该在何处查找静态资源⽂件,这是⼀个列表性的配置,查找⽂件时会依赖于配置的先后顺序依次进⾏,默认的官⽅配置如下:
classpath:/public,hotchine
classpath:/resources,
classpath:/META-INF/resources
recipeo3. 静态资源的Bean配置
从上⾯可以看出,“spring.mvc.static-path-pattern”与“sources.static-locations”组合起来演绎了nginx的映射配置,如果熟悉Spring MVC,那么理解起来更加简单,它们的作⽤可以⽤Bean配置表⽰,如下:
@Configuration
batman begins>if one day@EnableWebMvc倾慕的意思
pedalo
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/public-resources/")
.tCacheControl(CacheControl.maxAge(1, TimeUnit.HOURS).cachePublic());
}
公务员报名个人简历}
或者等同与以下的XML。
<mvc:resources mapping="/resources/**" location="/public-resources/">
<mvc:cache-control max-age="3600" cache-public="true"/>爱祖国演讲稿
</mvc:resources>
结论
“spring.mvc.static-path-pattern”⽤于阐述HTTP请求地址,
⽽“sources.static-locations”则⽤于描述静态资源的存放位置。