news 2026/4/16 12:09:51

springboot静态资源的核心映射规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springboot静态资源的核心映射规则

SpringBoot 对静态资源的处理做了高度封装,核心围绕「默认资源位置」「访问路径映射」「自定义配置」三大维度设计,旨在简化静态资源(CSS/JS/ 图片 / 静态页面等)的访问与管理,以下是其核心映射规则的详细解析:

一、默认静态资源存放位置(优先级从高到低)

SpringBoot 启动时会自动扫描以下目录作为静态资源根路径,资源可直接通过「访问路径」访问,无需额外配置:

  1. classpath:/META-INF/resources/(常用于第三方 jar 包的静态资源)
  2. classpath:/resources/(项目核心静态资源目录)
  3. classpath:/static/(最常用,默认推荐存放目录)
  4. classpath:/public/(通用公共静态资源)

示例:在classpath:/static/下存放img/logo.png,可直接通过http://localhost:8080/img/logo.png访问。

二、默认访问路径映射规则

  1. 基础映射:默认情况下,静态资源的访问路径为「/**」,即所有未被控制器(@Controller/@RestController)匹配的请求,都会尝试从上述静态资源目录查找。
    • 例如:请求http://localhost:8080/js/index.js→ 匹配classpath:/static/js/index.js
  2. 欢迎页(首页)规则:SpringBoot 会自动查找静态资源目录下的index.html作为默认首页,访问http://localhost:8080/时直接返回该文件。
  3. favicon.ico 规则:自动查找静态资源目录下的favicon.ico作为网站图标,无需手动配置映射。

三、静态资源前缀配置(自定义访问路径)

若需给静态资源添加统一访问前缀(如/static/**),可通过配置修改映射规则:

1. SpringBoot 2.x/3.x 配置(application.yml)

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

四、静态资源缓存与版本控制

  1. 默认缓存策略:SpringBoot 对静态资源默认开启缓存(通过响应头Cache-Control),可通过配置调整缓存时长:

yaml

spring: web: resources: cache: # 缓存有效期(单位:秒) period: 3600
  1. 版本控制(防止缓存失效)
    • 方式 1:手动添加版本号(如js/index.js?v=1.0);
    • 方式 2:配置资源哈希版本(需结合 WebMvcConfig 自定义)。

五、静态资源禁用 / 优先级说明

  1. 禁用静态资源映射:若无需静态资源功能,可通过配置关闭:

yaml

spring: web: resources: add-mappings: false
  1. 控制器优先级高于静态资源:若控制器映射路径(如@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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 7:42:03

现行析音法

现行析音法 节调质素分析法是把音节分析成由节调与节质构成的音节并且把节质切分成质素序列的方法。在经过节调质素分析后,音节由节调与节质构成,节质在不省略零声母的情况下由声母和韵母构成,韵母分成单质韵母、前长韵母、后长韵母和三质韵…

作者头像 李华
网站建设 2026/4/8 17:15:59

AR.js新API:5分钟开启WebAR开发新时代,让移动端增强现实触手可及

还在为WebAR开发的复杂性而头疼吗?传统的增强现实开发需要处理相机初始化、标记跟踪、三维场景渲染等多个环节,代码量动辄上百行。现在,AR.js的全新API彻底改变了这一现状——通过创新的"会话-锚点"架构,让WebAR开发变得…

作者头像 李华
网站建设 2026/4/15 20:53:46

Linux学习笔记_2025.12.11

Linux学习笔记_2025.12.11 文件属性 ls命令-l#详细信息-a#隐藏文件-d#查看目录本身详细信息-r#逆序显示文件-i#查看inode号-t#查看文件创建时间du #统计文件大小[rootmsdn_cc ~]# du -sh /etc/64M /etc/inode号码df -i #查看总inodedf -h #查看磁盘大小ll -i #查看文件inode号…

作者头像 李华
网站建设 2026/4/15 22:43:24

5个必备技巧:打造企业级人脸识别系统的完整指南

面对日益增长的安全需求,如何构建一个既安全又高效的人脸识别系统?FaceVerificationSDK为你提供了完美的离线解决方案。这个专为Android设备设计的人脸识别SDK,让你无需依赖云端服务,就能实现专业级的人脸检测、活体识别和人脸搜索…

作者头像 李华
网站建设 2026/4/11 10:47:07

串口设备调试利器:RS485/232调试助手深度解析

串口设备调试利器:RS485/232调试助手深度解析 【免费下载链接】RS485232串口调试助手 本仓库提供了一个名为“RS485/232串口调试助手.zip”的资源文件下载。该文件是一个串口调试工具,适用于RS485和RS232串口设备的调试和测试。 项目地址: https://git…

作者头像 李华
网站建设 2026/4/14 18:11:28

终极PWA图标生成解决方案:告别手动裁剪的烦恼

终极PWA图标生成解决方案:告别手动裁剪的烦恼 【免费下载链接】pwa-asset-generator Automates PWA asset generation and image declaration. Automatically generates icon and splash screen images, favicons and mstile images. Updates manifest.json and ind…

作者头像 李华