资源路径的问题
/ 和 /*有什么区别?
/会拦截除了jsp以外的所有url,/* 会拦截所有url,包括jsp。
spring boot默认把资源⽂件存放的地址是:
默认配置的 /** 映射到 /static (或/public、/resources、/META-INF/resources)
默认配置的 /webjars/** 映射到 classpath:/META-INF/resources/webjars/
Sp r ing B oot中静态资源的访问
它就⽐Spring稍微简单点,因为Boot已经做好了很多事。
在 Spring Boot 中,默认情况下,⼀共有5个位置可以放静态资源,五个路径分别是如下5个:
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
/
前四个⽬录好理解,分别对应了resources⽬录下不同的⽬录,第5个 / 是啥意思呢?稍微解释下:在 Spring Boot 项⽬中,默认是没有webapp 这个⽬录的,当然我们也可以⾃⼰添加(例如在需要使⽤JSP的时候),这⾥第5个 / 其实就是表⽰ webapp ⽬录中的静态资源也不被拦截。如果同⼀个⽂件分别出现在五个⽬录下,那么优先级也是按照上⾯列出的顺序。
所以在SpringBoot中问问静态资源默认情况下我们并不需要做什么。
具体原理参考类:ResourceProperties,它定义了这5个路径以及顺序~
WebMvcProperties.staticPathPattern属性值定义了访问的url的pattern。
springboot是啥Re s our ce Pr op e r tie s 定义了资源路径

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。