Spring Boot(六):如何配置静态资源的地址与访问路径
来源:互联网 发布:冯巩演技 知乎 编辑:程序博客网 时间:2024/06/06 23:16
静态资源,例如HTML文件、JS文件,设计到的Spring Boot配置有两项,一是“spring.mvc.static-path-pattern”,一是“spring.resources.static-locations”,很多人都难以分辨它们之间的差异,所以经常出现的结果就是404错误,无法找到静态资源。
1. “spring.mvc.static-path-pattern”
spring.mvc.static-path-pattern代表的含义是我们应该以什么样的路径来访问静态资源,换句话说,只有静态资源满足什么样的匹配条件,Spring Boot才会处理静态资源请求,以官方配置为例:
# 这表示只有静态资源的访问路径为/resources/**时,才会处理请求spring.mvc.static-path-pattern=/resources/**,
假定采用默认的配置端口,那么只有请求地址类似于“http://localhost:8080/resources/jquery.js”时,Spring Boot才会处理此请求,处理方式是将根据模式匹配后的文件名查找本地文件,那么应该在什么地方查找本地文件呢?这就是“spring.resources.static-locations”的作用了。
2. “spring.resources.static-locations”
“spring.resources.static-locations”用于告诉Spring Boot应该在何处查找静态资源文件,这是一个列表性的配置,查找文件时会依赖于配置的先后顺序依次进行,默认的官方配置如下:
spring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources
继续以上面的请求地址为例,“http://localhost:8080/resources/jquery.js”就会在上述的四个路径中依次查找是否存在“jquery.js”文件,如果找到了,则返回此文件,否则返回404错误。
3. 静态资源的Bean配置
从上面可以看出,“spring.mvc.static-path-pattern”与“spring.resources.static-locations”组合起来演绎了nginx的映射配置,如果熟悉Spring MVC,那么理解起来更加简单,它们的作用可以用Bean配置表示,如下:
@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("/public-resources/") .setCacheControl(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请求地址,而“spring.resources.static-locations”则用于描述静态资源的存放位置。
- Spring Boot(六):如何配置静态资源的地址与访问路径
- spring boot访问静态资源
- spring-boot 加载本地静态资源文件路径配置
- spring-boot 加载本地静态资源文件路径配置
- spring-boot 加载本地静态资源文件路径配置
- spring boot 加载本地静态资源文件路径配置
- spring-boot 加载本地静态资源文件路径配置
- spring-boot 加载本地静态资源文件路径配置
- (五)Spring Boot配置静态资源访问,整合Thymeleaf模板
- spring boot 配置静态资源
- spring boot静态资源文件的访问以及自定义
- Spring Boot 设置静态资源访问
- spring boot 加入 spring-security配置 角色前缀 静态资源访问
- 关于tomcat配置静态资源访问路径的问题
- Spring Boot 配置静态资源处理
- 如何在spring-boot中自定义dispatchServlet的访问路径
- spring Boot 静态资源与拦截器
- spring mvc 配置对静态资源的访问
- ROS小白碰壁记之三 EAI雷达F4的使用
- 大小写字母间转换
- 【小组会整理】ICLR2016Particular object retrieval with integral max-pooling of CNN activations
- LeetCode WIith JS || 121. Best Time to Buy and Sell Stock[求股票的最佳收益,只能交易一次]
- 矩阵乘法
- Spring Boot(六):如何配置静态资源的地址与访问路径
- java集合之Collection---set/map/list
- 设计模式(8)
- 3.1(2)
- scoll布局
- 明确
- 当并查集遇上贪心【UVA1623,UVA11134,POJ1456】
- BZOJ1026(SCOI2009)[windy数]--数位DP
- 远程服务器无法复制粘贴