问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Spring Boot之如何配置静态资源的地址与访

发布网友 发布时间:2022-04-23 19:02

我来回答

1个回答

热心网友 时间:2022-04-23 18:50

静态资源,例如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
@EnableWebMvc
public 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”则用于描述静态资源的存放位置。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕错过了糖筛怎么办 糖筛有哪些注意事项 怀孕几个月查唐筛 蔡家沟镇慈云寺 哈佳高铁高楞站多少平方米位置在那 超威电池生产日期怎么看 超威电池寿命一般多长时间 华晨宇鸟巢四面台10w+秒罄!!火星演唱会舞台概念图震撼发布! 手机连接160wifi电脑蓝屏使用160WiFi遇到问题应该如何解决 为什么手机wifi总是刚开启,锁屏就掉了。wifi设置里的休眠模式也是永久的... 建行卡为什么不能网上转账 学校发我们的建设银行卡一定要激活吗? 我打电话查余额说输入取钱密码... spring-boot 需要启动nginx吗 SpringBoot 端口63342? spring boot 项不用eclispe怎么运行 idea springboot 启动参数设置问题 springboot项目中换了无数个端口不能用 启动不了 mac电脑的idea中的spring boot 怎么修改tomcat的端口号 spring+boot怎么改端口 怎么改spring boot http port springboot 怎么修改tomcat端口号 哪些华为手机是能用三五年不过时的? 将皮鞋(高跟鞋)变小和变大的方法 皮鞋磨脚怎样使皮鞋变大啊 华为手机nova7和红米手机P30Pro一样的价格 这两个手机哪个耐用性好一点!!主要是电池寿命! 华为2500左右的手机哪款好 怎样把棕色的皮鞋变成黑色的,简单点的方法! 新买的皮鞋怎样可以让皮子变的软一些不再夹脚? 华为nova7pro和q3pro哪个好? 在不用鞋油的情况下,怎样能让脏皮鞋变得光亮如新呢? 女士佩戴手表需要注意哪些问题? 女士一般带手表一般表盘多大合适 我使用springboot内置的tomcat部署项目,为什么直接输入localhost:8081&#47;hello就可以访问 SpringBoot项目如何进行打包部署 电瓶车充电器的正负极线的颜色分别是什么? springboot启动成功,访问localhost:8080报404错 怎么自己学习化妆 想学着自己化妆,该怎么弄 怎么自己学化妆 怎么查询建行交易明细 自己如何简单化妆步骤 在家自己化妆的基本步骤? 如何自己化妆化妆 初学者怎样给自己化妆? 自己在家怎么学化妆,新手怎么学化妆 父亲刚去世我自己能化妆吗? 自己想化妆,可是从来没化过,该怎么化,需要什么?具体的步骤 想自己学化妆该怎么学啊? 刚开始学习给自己化妆,求指点。 我想学化妆,自己给自己化,该怎么化?? 在家自己化妆需要准备哪些化妆品? 可以自己化妆的软件?