Spring Boot - Spring Boot 静态资源映射(默认静态资源映射、自定义静态资源映射)
一、静态资源映射
-
在 Spring Boot 中,静态资源的映射是指将特定的 URL 路径与静态资源关联起来
-
静态资源有例如,HTML、CSS、JS、图片等
-
这使得客户端可以通过 URL 路径访问这些资源
二、默认静态资源映射
概述
- Spring Boot 默认会将以下目录中的文件映射为静态资源
-
classpath:/static/ -
classpath:/public/ -
classpath:/resources/ -
classpath:/META-INF/resources/
1、classpath:/static/
-
路径:
src/main/resources/static/ -
用途:用于存放静态资源文件,例如,CSS、JavaScript、图片等
# 示例URL 路径:http://localhost:8080/image.jpg文件路径:src/main/resources/static/image.jpg
2、classpath:/public/
-
路径:
src/main/resources/public/ -
用途:用于存放公开的静态资源文件,例如,HTML、图片等
# 示例URL 路径:http://localhost:8080/index.html文件路径:src/main/resources/public/index.html
3、classpath:/resources/
-
路径:
src/main/resources/resources/ -
用途:用于存放静态资源文件,与
classpath:/static/类似
# 示例URL 路径:http://localhost:8080/resources/style.css文件路径:src/main/resources/resources/style.css
4、classpath:/META-INF/resources/
-
路径:
src/main/resources/META-INF/resources/ -
用途:用于存放需要打包到 JAR 文件中的静态资源文件,通常用于第三方库或插件
# 示例URL 路径:http://localhost:8080/plugin.js文件路径:src/main/resources/META-INF/resources/plugin.js
访问优先级
- Spring Boot 会按照以下顺序查找静态资源文件,优先级从高到低
-
classpath:/META-INF/resources/ -
classpath:/resources/ -
classpath:/static/ -
classpath:/public/
注意事项
-
如果自定义了静态资源路径,即
spring.mvc.static-path-pattern,默认路径仍然有效 -
如果需要完全覆盖默认的静态资源路径,可以在配置中指定
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/
-
spring.mvc.static-path-pattern是静态资源的 URL 路径 -
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 {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/file/download/**").addResourceLocations("classpath:/file/");}
}
-
addResourceHandler 方法是静态资源的 URL 路径
-
addResourceLocations 方法是静态资源的实际位置
# 示例URL 路径:http://localhost:8080/file/download/image.jpg文件路径:src/main/resources/file/image.jpg
访问优先级
-
如果同时使用了配置文件配置与代码配置,Spring Boot 会合并两者的配置
-
如果路径冲突,代码配置会优先级更高
映射到文件系统
- 配置文件配置
spring:mvc:static-path-pattern: /file/download/**web:resources:static-locations: file:D:/fileUpload/
- 代码配置
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/file/download/**").addResourceLocations("file:D:/fileUpload/");}
}
相关文章:
Spring Boot - Spring Boot 静态资源映射(默认静态资源映射、自定义静态资源映射)
一、静态资源映射 在 Spring Boot 中,静态资源的映射是指将特定的 URL 路径与静态资源关联起来 静态资源有例如,HTML、CSS、JS、图片等 这使得客户端可以通过 URL 路径访问这些资源 二、默认静态资源映射 概述 Spring Boot 默认会将以下目录中的文件…...
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 是每次操作的量级,对于求最大值和求和来说,因为操作比较简单,所以 …...
深入理解 Linux 的 top 命令:实时监控系统性能
在 Linux 系统管理和性能优化中,top 命令是一个不可或缺的工具。它可以实时显示系统的进程信息和资源使用情况,帮助管理员快速定位性能瓶颈。本文将详细介绍 top 命令的输出内容及其使用方法,帮助你更好地掌握系统性能监控。 一、top 命令简介 top 是一个动态显示系统状态的…...
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空…...
JavaScript基础-DOM 简介
在现代Web开发中,JavaScript与HTML和CSS一起构成了网页的核心技术。而在这三者之中,DOM(Document Object Model,文档对象模型)作为浏览器处理网页内容的一种接口,扮演着至关重要的角色。通过DOM,…...
VS Code + Git 分支操作指南(附流程图)
VS Code + Git 分支操作指南(附流程图) 本指南将手把手教你如何在 Visual Studio Code (VS Code) 中使用 Git 进行项目开发管理,配合标准分支模型(main、develop、feature/* 等),并附上直观的流程图,适合新手快速上手! 📌 前置准备 安装 Git安装 VS Code安装 VS Cod…...
Oracle ASM Failgroup故障组
Oracle ASM Failgroup故障组 1. 故障组的核心作用2. 故障组的配置规则3. 故障组的设计最佳实践4. 故障组的实际示例场景1:普通冗余(2个故障组)场景2:高冗余(3个故障组,跨数据中心) 关键注意事项…...
【最新版】智慧小区物业管理小程序源码+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:文档介绍…...
linux操作系统3
1.安装桌面的centos操作系统 二.linux相对路径和绝对路径 1.相对路径:从当前目录开始数的不完整路径 2.绝对路径:从跟开始数的完整路径 (这2种路径主要是为了方便用户操作) 3.linux用户和用户组管理 创建用户组:useradd 删除用户:userdel 用户的修改:usermod(可以修改用…...
windows创建开机启动任务
1、背景 一个java应用程序,需要做成开机启动,系统为windows系统。 2、创建启动脚本 创建一个 .bat 文件(例如 startup.bat),并将其保存到 Java 应用程序的目录中(如 E:\gitcode\mygit\learn\database\jdk2…...
素数判定方法详解:从基础试除法到优化策略
素数是只能被1和自身整除的正整数。素数的判定是数论中的基础问题,也是算法竞赛中的常见考点。 一、知识点 素数的定义: 素数(质数)是大于1的自然数,且只能被1和自身整除。 试除法: 通过遍历从2到sqrt(n)…...
BFS,DFS带图详解+蓝桥杯算法题+经典例题
1.BFS和DFS的定义与实现方式 1.1 深度优先搜索(DFS) 基本概念:DFS 是一种用于遍历或搜索图或树的算法。它从起始节点开始,沿着一条路径尽可能深地探索下去,直到无法继续或者达到目标节点,然后回溯到上一个…...
「清华大学、北京大学」DeepSeek 课件PPT专栏
你要的 这里都打包好啦,快快收藏起来! 名称 链接 团队简介 类型 DeepSeek——从入门到精通 1️⃣ DeepSeek从入门到精通「清华团队」 清华大学新闻与传播学院 新媒体研究中心 元宇宙文化实验室 PPT课件 DeepSeek如何赋能职场应用? ——从提示语…...
