springboot静态资源

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

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

springboot静态资源_第1张图片

 

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

拿5张图片测试下

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

springboot静态资源_第2张图片

 springboot静态资源_第3张图片

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

springboot静态资源_第4张图片

 

springboot静态资源_第5张图片

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

静态资源没有后就会报错

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

在官方文档中

springboot静态资源_第6张图片

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

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

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

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

springboot静态资源_第7张图片

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

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

springboot静态资源_第8张图片

 springboot静态资源_第9张图片

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

springboot静态资源_第10张图片

 现在是web下的resources的static-locations

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

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

你可能感兴趣的:(spring学习,spring,boot)