springboot静态资源
springboot 静态资源默认是在resource下的也就是classpath类路径下的/static或/public或/resources或/META-INF/resourcestemplate应该不包括在内没有说明拿5张图片测试下经过测试templates里面的图片确实无法访问其他都可以但是静态资源名和controller请求路径名一样怎么办呢?现在我们知道了他的请求优先为controll
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这些目录就会失效了
更多推荐
所有评论(0)