Springboot 2.x系列文章5:WEB开发
前言
Springboot 开发,最常用的就是WEB项目开发
一、静态资源访问
静态资源目录
- 默认路径:resource路径下的 /static (or /public or /resources or /META-INF/resources
- 改变路径:数组; 在yml配置如下
web:
resources:
static-locations: [classpath:/static/]
静态资源访问前缀
- 默认路径:/**
- 改变路径:值; 在yml配置如下
当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找
spring:
mvc:
static-path-pattern: /static/**
静态和动态请求优先级
- 动态处理器:先去找Controller看能不能处理
- 静态资源处理器
- 响应404页面
层级目录应用
映射好顶级资源目录后,下级资源目录和访问目录是一一对应的
如:url目录 /static === 实际目录 resource/static
那么: /static/123.jpg === 实际目录 resource/static/123.jpg
/static/student/123.jpg === 实际目录 resource/static/student/123.jpg
二、欢迎页支持
静态资源路径下index.html
○ 可以配置静态资源路径
○ 但是不可以配置静态资源的访问前缀。否则导致 index.html不能被默认访问
spring:
# mvc:
# static-path-pattern: /res/** 这个会导致welcome page功能失效
resources:
static-locations: [classpath:/haha/]
动态页面请求 /index
controller能处理/index
三、自定义 Favicon
favicon.ico 放在静态资源目录下即可;注意以下情况:
spring:
# mvc:
# static-path-pattern: /res/** 这个会导致 Favicon 功能失效
四、静态资源配置原理
静态资源
- SpringBoot启动默认加载 xxxAutoConfiguration 类(自动配置类)
- SpringMVC功能的自动配置类 WebMvcAutoConfiguration,生效
@ConditionalOnClass({
Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({
WebMvcConfigurationSupport