静态资源
资源目录
Springboot寻找静态资源时会从资源目录中查找
默认静态资源目录
默认情况下,Spring Boot 会从 classpath 中名为 /static 的目录提供静态资源(也可以是 /public、/resources 或 /META-INF/resources),或者从 ServletContext 的根目录提供静态内容。
/static
/public
/resources
/META-INF/resources自定义静态资源目录
如果你想自定义静态资源位置,可以在配置文件中修改。
yaml
spring:
web:
resources:
static-locations:
- classpath:/static/
- classpath:/my-static/
- file:/data/upload/| 路径 | 含义 |
|---|---|
classpath:/static/ | 项目内部目录 |
classpath:/my-static/ | 自定义资源目录 |
file:/data/upload/ | 服务器磁盘目录 |
映射规则
符合映射规则的请求才会去请求静态资源。
默认映射规则
Spring Boot 内部使用 Spring MVC 的 ResourceHttpRequestHandler 来处理静态资源请求。
默认映射规则:
java
/**假设静态资源路径设置为static,则:
/logo.png -> static/logo.png
/js/app.js -> static/js/app.js自定义映射规则
可以修改访问路径前缀:
yaml
spring:
mvc:
static-path-pattern: /res/**访问方式:
http://localhost:8080/res/logo.png假设静态资源路径设置为static,则会寻找static/logo.png
资源优先级
访问一个 URL 时,Spring Boot 处理顺序:
1 Controller
2 静态资源
3 默认Servlet例如:
java
/user/list如果存在:
java
@Controller
@RequestMapping("/user/list")就 不会去找静态资源。
