springboot静态资源

本文介绍了SpringBoot中静态资源的默认路径和访问方式,包括/static, /public, /resources, /META-INF/resources。当静态资源路径与Controller路径冲突时,Controller优先级更高。为保护静态资源不直接公开,可以通过在yml或properties中设置spring.mvc.static-path-pattern,如配置为/resources/**,使访问静态资源需添加/res前缀。同时,旧的spring.resource.static-location配置已被弃用,现在使用web.resources.static-locations进行多目录配置。若要拦截静态资源请求,可利用Filter或Interceptor添加前缀并进行权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot 静态资源默认是在resource下的也就是classpath类路径下的

/static/public/resources/META-INF/resources

 

template应该不包括在内没有说明

拿5张图片测试下

经过测试templates里面的图片确实无法访问其他都可以

 

 但是静态资源名和controller请求路径名一样怎么办呢?

 

 现在我们知道了他的请求优先为controller 优先 controller没有后再去静态资源找

静态资源没有后就会报错

那当一个项目需要将静态资源不公开设置一个前缀并使用filter或intercepter来拦截静态资源的请求该怎么做呢?

在官方文档中

我们的静态资源的路径经过整合所以我们不许要在url中指明文件夹让他帮我们自动搜索

但现在我们要设置拦截他,且不能拦截所有Controller所以我们就给他的资源路径上加个前缀

是在yml或properties中修改spring.mvc.static-path-pattern

实例是/resources/**你可以修改为:

 这样访问静态资源就得在前面加上个/res

但是你的项目资源文件夹不用改变

 

 之前静态资源路径]的修改可以通过spring.resource.static-location来实现改变的但现在是这个方法弃用了

 现在是web下的resources的static-locations

他是一个数组式的参数他可以有多个目录

当然你配置之后之前的默认public static这些目录就会失效了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值