SpringMVC静态资源的放行
激活Tomcat的defaultServlet来处理静态文件
由于使用了SpringMVC,所以任何资源都会先经过Tomcat的拦截,再到Spring的拦截。这里可以用Tomcat先对静态资源进行放行,这样就不会到Spring的拦截了。注意要写在DispatcherServlet的前面, 让defaultServlet先拦截。
Spring配置mvc:resources
比如<mvc:resources mapping="/images/**" location="/images/" /> ,直接放行映射路径下的所有资源。
Spring配置mvc:default-servlet-handler/
mvc:default-servlet-handler/会把 "/**" url,注册到 SimpleUrlHandlerMapping 的 urlMap 中,把对静态资源的访问由 HandlerMapping 转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler 处理并返回.DefaultServletHttpRequestHandler 使用就是各个 Servlet 容器自己的默认 Servlet.
SpringBoot静态资源的放行
spring.mvc.static-path-pattern
spring.mvc.static-path-pattern代表的含义是我们应该以什么样的路径来访问静态资源,换句话说,只有静态资源满足什么样的匹配条件,Spring Boot才会处理静态资源请求,以官方配置为例:
spring.mvc.static-path-pattern=/resources/**,
spring.resources.static-locations
spring.resources.static-locations用于告诉Spring Boot应该在何处查找静态资源文件,这是一个列表性的配置,查找文件时会依赖于配置的先后顺序依次进行,默认的官方配置如下:
spring.resources.static-locations=
classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources
自定义静态资源配置
SpringBoot推荐用配置Bean进行配置,配置类只需要继承WebMvcConfigurerAdapter,重写addResourceHandlers方法就可以进行静态资源路径的映射。
评论区