Qt 项目打包成独立 exe
2026/7/22 14:21:27
SpringBoot 对静态资源的处理做了高度封装,核心围绕「默认资源位置」「访问路径映射」「自定义配置」三大维度设计,旨在简化静态资源(CSS/JS/ 图片 / 静态页面等)的访问与管理,以下是其核心映射规则的详细解析:
SpringBoot 启动时会自动扫描以下目录作为静态资源根路径,资源可直接通过「访问路径」访问,无需额外配置:
classpath:/META-INF/resources/(常用于第三方 jar 包的静态资源)classpath:/resources/(项目核心静态资源目录)classpath:/static/(最常用,默认推荐存放目录)classpath:/public/(通用公共静态资源)示例:在classpath:/static/下存放img/logo.png,可直接通过http://localhost:8080/img/logo.png访问。
/**」,即所有未被控制器(@Controller/@RestController)匹配的请求,都会尝试从上述静态资源目录查找。http://localhost:8080/js/index.js→ 匹配classpath:/static/js/index.js。index.html作为默认首页,访问http://localhost:8080/时直接返回该文件。favicon.ico作为网站图标,无需手动配置映射。若需给静态资源添加统一访问前缀(如/static/**),可通过配置修改映射规则:
yaml
spring: web: resources: # 静态资源访问前缀(需加/**) static-path-pattern: /static/** # 自定义静态资源根目录(可追加多个) locations: [classpath:/my-static/, classpath:/static/]效果:访问http://localhost:8080/static/img/logo.png→ 匹配classpath:/my-static/img/logo.png(优先级更高)或classpath:/static/img/logo.png。
Cache-Control),可通过配置调整缓存时长:yaml
spring: web: resources: cache: # 缓存有效期(单位:秒) period: 3600js/index.js?v=1.0);yaml
spring: web: resources: add-mappings: false@GetMapping("/img/logo.png"))与静态资源路径冲突,优先执行控制器逻辑,不会访问静态资源。SpringBoot 静态资源映射的核心由WebMvcAutoConfiguration自动配置类实现,默认注册ResourceHttpRequestHandler处理静态资源请求,若自定义WebMvcConfigurer并重写addResourceHandlers方法,会覆盖默认规则(可实现更灵活的映射)。
java
运行
@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 映射本地磁盘目录到访问路径 registry.addResourceHandler("/disk/**") .addResourceLocations("file:D:/static/"); } }效果:访问http://localhost:8080/disk/img/photo.jpg→ 匹配本地D:/static/img/photo.jpg。