Skip to content

静态资源

资源目录

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")

不会去找静态资源