Spring Boot - Spring Boot 静态资源映射(默认静态资源映射、自定义静态资源映射)

news2025/3/19 7:51:03

一、静态资源映射

  1. 在 Spring Boot 中,静态资源的映射是指将特定的 URL 路径与静态资源关联起来

  2. 静态资源有例如,HTML、CSS、JS、图片等

  3. 这使得客户端可以通过 URL 路径访问这些资源


二、默认静态资源映射

概述
  • Spring Boot 默认会将以下目录中的文件映射为静态资源
  1. classpath:/static/

  2. classpath:/public/

  3. classpath:/resources/

  4. classpath:/META-INF/resources/

1、classpath:/static/
  1. 路径:src/main/resources/static/

  2. 用途:用于存放静态资源文件,例如,CSS、JavaScript、图片等

# 示例

URL 路径:http://localhost:8080/image.jpg

文件路径:src/main/resources/static/image.jpg
2、classpath:/public/
  1. 路径:src/main/resources/public/

  2. 用途:用于存放公开的静态资源文件,例如,HTML、图片等

# 示例

URL 路径:http://localhost:8080/index.html

文件路径:src/main/resources/public/index.html
3、classpath:/resources/
  1. 路径:src/main/resources/resources/

  2. 用途:用于存放静态资源文件,与 classpath:/static/ 类似

# 示例

URL 路径:http://localhost:8080/resources/style.css

文件路径:src/main/resources/resources/style.css
4、classpath:/META-INF/resources/
  1. 路径:src/main/resources/META-INF/resources/

  2. 用途:用于存放需要打包到 JAR 文件中的静态资源文件,通常用于第三方库或插件

# 示例

URL 路径:http://localhost:8080/plugin.js

文件路径:src/main/resources/META-INF/resources/plugin.js
访问优先级
  • Spring Boot 会按照以下顺序查找静态资源文件,优先级从高到低
  1. classpath:/META-INF/resources/

  2. classpath:/resources/

  3. classpath:/static/

  4. classpath:/public/

注意事项
  1. 如果自定义了静态资源路径,即 spring.mvc.static-path-pattern,默认路径仍然有效

  2. 如果需要完全覆盖默认的静态资源路径,可以在配置中指定 spring.web.resources.static-locations


三、自定义静态资源映射

1、配置文件配置
  • application.yaml 文件中,配置如下内容
spring:
  mvc:
    static-path-pattern: /static/**
  web:
    resources:
      static-locations: classpath:/custom-static/
# 如果使用的是 properties 文件

spring.mvc.static-path-pattern=/static/**
spring.web.resources.static-locations=classpath:/custom-static/
  1. spring.mvc.static-path-pattern 是静态资源的 URL 路径

  2. spring.web.resources.static-locations 是静态资源的实际位置

# 示例

URL 路径:http://localhost:8080/static/image.jpg

文件路径:src/main/resources/custom-static/image.jpg
2、代码配置
  • 实现 WebMvcConfigurer 接口,通过代码配置可以更灵活地定义静态资源的映射,
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/file/download/**")
                .addResourceLocations("classpath:/file/");
    }
}
  1. addResourceHandler 方法是静态资源的 URL 路径

  2. addResourceLocations 方法是静态资源的实际位置

# 示例

URL 路径:http://localhost:8080/file/download/image.jpg

文件路径:src/main/resources/file/image.jpg
访问优先级
  1. 如果同时使用了配置文件配置与代码配置,Spring Boot 会合并两者的配置

  2. 如果路径冲突,代码配置会优先级更高

映射到文件系统
  1. 配置文件配置
spring:
  mvc:
    static-path-pattern: /file/download/**
  web:
    resources:
      static-locations: file:D:/fileUpload/
  1. 代码配置
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/file/download/**")
                .addResourceLocations("file:D:/fileUpload/");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2317663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL原理:逻辑架构

目的:了解 SQL执行流程 以及 MySQL 内部架构,每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层:连接层 3.1 数据库连接池(Conn…

ora-600 ktugct: corruption detected---惜分飞

接手一个oracle 21c的库恢复请求,通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)脚本检测之后,发现undo文件offline之后,做了resetlogs操作,导致该文件目前处于WRONG RESETLOGS状态 尝试恢复数据库ORA-16433错误 SQL> recover datafile 1; ORA-00283:…

Houdini :《哪吒2》神话与科技碰撞的创新之旅

《哪吒2》(即《哪吒之魔童闹海》)截止至今日,荣登全球票房榜第五。根据猫眼专业版数据,截至2025年3月15日,《哪吒2》全球累计票房(含预售及海外)超过150.19亿元,超越《星球大战&…

flink 写入es的依赖导入问题(踩坑记录)

flink 写入es的依赖导入问题(踩坑记录) ps:可能只是flink低版本才会有这个问题 1. 按照官网的导入方式: 2. 你会在运行sql-client的时候完美得到一个错误: Exception in thread "main" org.apache.flink.table.client.SqlClientEx…

PCL 高斯函数拟合(正太分布)

文章目录 一、简介二、实现代码三、实现效果一、简介 类似于之前最小二乘法的做法,我们需要先确定目标函数: 通过最小二乘法,找到使预测值与实际数据残差平方和最小的参数: 不过由于这是一个非线性最小二乘问题,因此这里无法使用矩阵的形式之间求解它的解析解了,因此这里…

深度革命:ResNet 如何用 “残差连接“ 颠覆深度学习

一文快速了解 ResNet创新点 在深度学习的历史长河中,2015年或许是最具突破性的一年。这一年,微软亚洲研究院的何恺明团队带着名为ResNet(残差网络)的模型横空出世,在ImageNet图像分类竞赛中以3.57%的错误率夺冠&#…

Java基础与集合

参考 Java基础知识详解:从面向对象到异常处理-CSDN博客 2024年 Java 面试八股文(20w字)_java面试八股文-CSDN博客 基础知识 java概述 什么是java? java是一种面向对象的编程语言 java特点 面向对象(继承&#…

【Python 算法零基础 1.线性枚举】

我装作漠视一切,以为这样就可以不在乎 —— 25.3.17 一、线性枚举的基本概念 1.时间复杂度 线性枚举的时间复杂度为 O(nm),其中 n是线性表的长度。m 是每次操作的量级,对于求最大值和求和来说,因为操作比较简单,所以 …

003 SpringCloud整合-LogStash安装及ELK日志收集

SpringCloud整合-LogStash安装及ELK日志收集 文章目录 SpringCloud整合-LogStash安装及ELK日志收集1.安装ElasticSearch和kibana2.Docker安装logstash1.拉取docker镜像2.创建外部挂载目录3.拷贝容器内部文件到宿主机4.修改外部挂载文件5.运行docker容器 3.整合kibana1.进入kiba…

AI预测体彩排3新模型百十个定位预测+胆码预测+杀和尾+杀和值2025年3月18日第22弹

前面由于工作原因停更了很长时间,停更期间很多彩友一直私信我何时恢复发布每日预测,目前手头上的项目已经基本收尾,接下来恢复发布。当然,也有很多朋友一直咨询3D超级助手开发的进度,在这里统一回复下。 由于本人既精…

数据结构入门(1)——算法复杂度

目录 一、前言 二、数据结构 2.1数据结构的概念 2.2数据结构的组成 2.3算法 三、oj题引进 四、复杂度 4.1复杂度的概念 4.2大O渐进表示法 4.3时间复杂度 4.4时间复杂度计算示例 4.4.1示例1 4.4.2示例2 4.4.3示例3 4.4.4示例4 4.4.5示例5 4.4.6示例6 4.4.7示例7 4.4.8示例8 4.5空…

【最新版】智慧小区物业管理小程序源码+uniapp全开源

一.系统介绍 智慧小区物业管理小程序,包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统,贴合物业工作场景,轻松提高物业费用收缴率,更有功能模块个性化组合,助力物业节约成本高效运营。 二.搭建环境 系统环…

DeepSeek搭建本地知识库

1. 注册硅基流动 首先,打开浏览器,访问硅基流动的官方网站。 https://account.siliconflow.cn/ 在注册页面准确输入你的手机号,完成账号注册。这是搭建本地知识库的第一步,为后续获取重要权限做准备。 成功注册后,进…

实验9 高级搜索技术1

实验9 高级搜索技术1 一、实验目的 (1)掌握高级搜索技术的相关理论,能根据实际情况选取合适的搜索方法; (2)进一步熟悉爬山法搜索技术,掌握其在搜索过程中的优缺点; (3&…

【数据挖掘】Python基础环境安装配置

【数据挖掘】Python基础环境安装配置 一、摘要二、安装Python3.13.2三、安装Jupyter Notebook四、安装Numpy和Pandas以及matplotlib五、安装scikit-learn库和seaborn库 一、摘要 本文主要介绍如何在Windows上安装Python3.13.2,然后基于该Python版本安装Jupyter not…

【2025新版本】【谷粒商城版】Kubernetes

本文作者: slience_me 文章目录 【2025】Kubernetes1. docker安装2. kubernetes安装前3. kubeadm,kubelet,kubectl3.1 简介kubeadmkubeletkubectl常用指令 3.2 安装3.3 kubeadm初始化3.4 加入从节点(工作节点)3.5 安装Pod网络插件(CNI)3.6 Ku…

vulhub-Billu-b0x攻略

靶场下载链接 https://download.vulnhub.com/billu/Billu_b0x.zip 将kali和Billu,NAT连接 获取靶场ip arp-scan -l 使用diesearch进行目录扫描 dirsearch -u " " 查看目录中的信息 打开add.php,得到有上传文件功能的(看到后面你会发现其实这里就可以完…

vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持

目录 一.项目文件结构 二.实现代码 1.子组件(表格组件) 2.父组件(使用表格) 一.项目文件结构 1.表格组件(子组件)位置 2.使用表格组件的页面文件(父组件)位置 3.演示图片位置 ele…

数字人本地部署之llama-本地推理模型

llama 本地服务命令 llama-server.exe -m "data/LLM/my.gguf" --port 8080 -m data/LLM/my.gguf -m 属于命令行选项,一般用来指定要加载的模型文件。 data/LLM/my.gguf 是模型文件的路径。gguf 格式的文件是一种用于存储语言模型权重的文件格式&…

RUOYI框架在实际项目中的应用三:Ruoyi微服务版本-RuoYi-Cloud

如需观看Ruoyi框架的整体介绍,请移步:RUOYI框架在实际项目中的应用一:ruoyi简介 一、Ruoyi微服务版本-Ruoyi微服务版本 1、官方资料 1:代码地址:https://gitee.com/y_project/RuoYi-Cloud.git 2:文档介绍…