Spring Boot官方文档说明
默认情况下,Spring Boot将从类路径中的/static
( /public
或/resources
或/META-INF/resources
)目录或者根目录中提供静态内容(四个静态资源目录)ServletContext
。它使用ResourceHttpRequestHandler
Spring MVC,因此您可以通过添加自己WebMvcConfigurerAdapter
的addResourceHandlers
方法来修改该行为并覆盖该 方法。
在独立的Web应用程序中,容器中的默认servlet也会启用,并作为后备,从ServletContext
if 的根目录提供内容,决定不处理它。大多数情况下这不会发生(除非你修改默认的MVC配置),因为Spring总是能够通过它来处理请求DispatcherServlet
。
配置spring.mvc.static-path-pattern
默认情况下,会映射资源/**
但您可以通过spring.mvc.static-path-pattern
调整该资源。
也就是说,他的作用就是Spring Boot应该以什么样的路径来访问静态资源,只有静态资源满足什么样的条件,Spring Boot才会处理静态资源请求。
例如,重新定位所有资源/resources/** 可以实现如下:
#这表示只有静态资源的访问路径为/resources/**时,才会处理请求
spring.mvc.static-path-pattern=/resources/**
配置spring.resources.static-locations
您还可以使用spring.resources.static-locations
(使用目录位置列表替换默认值)自定义静态资源位置 。如果执行此操作,默认的欢迎页面检测将切换到您的自定义位置。因此,如果index.html
您的任何位置在启动时存在,它将成为应用程序的主页。
也就是说,他的作用就是告诉Spring Boot应该在何处查找静态资源文件,这是一个列表性的配置,查找文件时会依赖于配置的先后顺序依次进行,(四个静态资源目录)默认的官方配置如下:
spring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources
Springboot访问上传的文件就用到 配置spring.resources.static-locations
static和templates的区别
SpringBoot项目resources下默认有两个文件夹static和template.
一般static存放静态资源,template存放动态资源。
main/resources/templates 模板界面
main/resources/static 静态文件
resources 配置文件
参考:
https://blog.youkuaiyun.com/weixin_37891479/article/details/82117175
https://blog.youkuaiyun.com/u012882134/article/details/77230900
个人网站欢迎来访