Spring Boot静态资源访问顺序
在 Spring Boot 中,static 和 public 目录都用于存放静态资源(如 HTML、CSS、JavaScript、图片等文件),但它们在使用上有一些细微的区别。以下是它们的详细对比:
1. 默认优先级
Spring Boot 会按照以下优先级加载静态资源:
classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public/
如果多个目录中存在同名文件,Spring Boot 会优先加载优先级更高的目录中的文件。
2. 使用场景
static 目录
- 推荐用途:存放前端静态资源(如 HTML、CSS、JS 文件)。
- 特点:
- 是 Spring Boot 默认的静态资源目录之一。
- 适合存放与前端相关的静态文件。
- 优先级高于
public目录。
public 目录
- 推荐用途:存放公共资源(如图片、字体、下载文件等)。
- 特点:
- 是 Spring Boot 默认的静态资源目录之一。
- 适合存放不常变动或通用的静态资源。
- 优先级低于
static目录。
3. 示例
假设项目结构如下:
src/main/resources/
├── static/
│ └── index.html
└── public/└── images/└── logo.png
访问方式
index.html的访问 URL:http://localhost:8080/index.htmllogo.png的访问 URL:http://localhost:8080/images/logo.png
4. 自定义静态资源路径
如果需要自定义静态资源路径,可以在 application.properties 或 application.yml 中配置:
application.properties
spring.web.resources.static-locations=classpath:/custom-static/
application.yml
spring:web:resources:static-locations: classpath:/custom-static/
配置后,Spring Boot 会从 custom-static 目录加载静态资源,而不是默认的 static 或 public 目录。
5. 总结
| 特性 | static 目录 | public 目录 |
|---|---|---|
| 优先级 | 较高 | 较低 |
| 推荐用途 | 前端静态资源(HTML、CSS、JS) | 公共资源(图片、字体、下载文件) |
| 默认路径 | classpath:/static/ | classpath:/public/ |
| 访问方式 | http://localhost:8080/filename | http://localhost:8080/filename |
选择建议
- 如果项目主要是前端应用,推荐将静态资源放在
static目录。 - 如果需要存放通用的公共资源(如图片、字体等),可以放在
public目录。 - 如果需要更灵活的管理,可以通过配置自定义静态资源路径。
相关文章:
Spring Boot静态资源访问顺序
在 Spring Boot 中,static 和 public 目录都用于存放静态资源(如 HTML、CSS、JavaScript、图片等文件),但它们在使用上有一些细微的区别。以下是它们的详细对比: 1. 默认优先级 Spring Boot 会按照以下优先级加载静态…...
电脑总显示串口正在被占用处理方法
1.现象 在嵌入式开发过程中,有很多情况下要使用串口调试,其中485/422/232转usb串口是非常常见的做法。 根据协议,接口芯片不同,需要安装对应的驱动程序,比如ch340,cp2102,CDM212364等驱动。可…...
工具介绍《HACKBAR V2》
HackBar V2 是一款功能强大的浏览器渗透测试工具,主要用于测试 SQL 注入、XSS 漏洞、POST 传参等安全场景。以下是其核心功能、用法及实际案例操作的综合介绍: 一、核心功能与用法详解 1. 基础操作 Load URL 功能:将当前浏览器地址栏的 URL …...
Java算法语法学习 美丽子集的数目 - 力扣 Map接口
文章目录 题目解题思路题解统计数组中每个数字按模k分组的出现次数,并保持数值有序作用 **merge(x, 1, Integer::sum)**解释**检查键是否存在**:**合并现有值**: 示例在代码中的应用**计算余数**:**存储余数及其出现次数**: merge 的常见用法统计频率合并字符串合并…...
Vue项目通过内嵌iframe访问另一个vue页面,获取token适配后端鉴权(以内嵌若依项目举例)
1. 改造子Vue项目进行适配(ruoyi举例) (1) 在路由文件添加需要被外链的vue页面配置 // 若依项目的话是 router/index.js文件 {path: /contrast,component: () > import(/views/contrast/index),hidden: true },(2) 开放白名单 // 若依项目的话是 permission.js 文件 cons…...
梯度本质论:从黎曼流形到神经网络的拓扑寻优
一、微分几何框架下的梯度再诠释 在标准数学分析中,梯度被定义为标量场 f : R n → R f:\mathbb{R}^n→\mathbb{R} f:Rn→R的导数张量 ∇ f ( ∂ f ∂ x 1 , . . . , ∂ f ∂ x n ) \nabla f(\frac{\partial f}{\partial x_1},...,\frac{\partial f}{\partial x_n…...
计算机毕业设计SpringBoot+Vue.js网络海鲜市场系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
一文对比RAGFLOW和Open WebUI【使用场景参考】
一、RAGFLOW与Open WebUI RAGFLOW是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不…...
2025年03月07日Github流行趋势
项目名称:ai-hedge-fund 项目地址url:https://github.com/virattt/ai-hedge-fund项目语言:Python历史star数:12788今日star数:975项目维护者:virattt, seungwonme, KittatamSaisaard, andorsk, arsaboo项目…...
实训任务2.2 使用Wireshark捕获数据包并分析
目录 【实训目标】 【实训环境】 【实训内容】 【实训步骤】 1.启动WireShark 2. 使用Wireshark捕获数据包 (1)选择网络接口 (2)捕获数据包 (1)设置Wireshark过滤器并捕获数据包 (2&…...
C# Lambda 表达式 详解
总目录 前言 在C#编程中,Lambda表达式是一种简洁而强大的语法特性,它提供了一种更加灵活和直观的方式来编写匿名函数。无论是在LINQ查询、事件处理还是异步编程中,Lambda表达式都扮演着重要角色。本文将详细介绍Lambda,帮助您更好…...
wordpress自定the_category的输出结构
通过WordPress的过滤器the_category来自定义输出内容。方法很简单,但是很实用。以下是一个示例代码: function custom_the_category($thelist, $separator , $parents ) {// 获取当前文章的所有分类$categories get_the_category();if (empty($categ…...
HTML前端手册
HTML前端手册 记录前端框架在使用过程中遇到的各种问题和解决方案,供后续快速进行手册翻阅使用 文章目录 HTML前端手册1-前端框架1-TypeScript框架2-CSS框架 2-前端Demo1-Html常用代码 2-知云接力3-Live2D平面动画 3-前端运维1-NPM版本管理 1-前端框架 1-TypeScrip…...
vscode mac版本 配置git
首先使用 type -a git查看git的安装目录 然后在vscode中找到settings配置文件,修改git.path...
爬虫Incapsula reese84加密案例:Etihad航空
声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、找出需要加密的参数 1.js运行 atob(‘aHR0cHM6Ly93d3cuZXRpaGFkLmNvbS96aC1jbi8=’) 拿到网址,F12打开调试工具,随便搜索航班,切换到network搜索一个时间点可以找…...
【C#】async与await介绍
1. 实例1 1.1 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp1 {class Program{static void Main(string[] args){Method1();Method2();Console.ReadKey();}public static…...
【银河麒麟高级服务器操作系统实例】虚拟机桥接网络问题分析及处理
更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…...
Vue3路由组件和一般组件 切换路由时组件挂载和卸载 路由的工作模式
路由组件和一般组件 路由组件 一般放到pages或view目录 一般组件 一般放到component目录 切换路由 切换路由时,组件和执行挂载和卸载 路由的工作模式 Hash模式 缺点 1.不美观,路径带#号 优点 1.兼容性好 一般适用于管理系统 History模式 缺点…...
Spring Boot集成Minio笔记
一、首先配置MinIO 1、MinIO新建Bucket,访问控制台如图 创建访问密钥(就是账号和密码) 二、集成mino添加Minio客户端依赖 1.maven构建方式在pom.xml引入jar <dependency><groupId>io.minio</groupId><artifactId>minio</artifactI…...
linux c++11 gcc4 环境编译安装googletest/gtest v1.10
c11对应googletest/gtest 经过测试,c11对应版本是googletest v1.10.x 编译安装 编译环境 sudo apt-get update sudo apt-get install -y build-essential cmake下载或git clone代码 git clone https://github.com/google/googletest.git cd googletest git che…...
Verilog行为级描述:从语法到硬件映射的工程实践指南
1. 项目概述:从“是什么”到“为什么”如果你刚开始接触数字电路设计,或者正准备从VHDL转向Verilog,那么“行为级描述”这个词可能会让你既兴奋又困惑。兴奋在于,它听起来比“门级网表”或“RTL(寄存器传输级ÿ…...
AntiDupl.NET终极指南:快速清理重复图片的免费开源神器
AntiDupl.NET终极指南:快速清理重复图片的免费开源神器 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾为电脑中堆积如山的重复图片而烦恼…...
Winhance中文版:Windows系统优化终极指南,3分钟让电脑焕然一新
Winhance中文版:Windows系统优化终极指南,3分钟让电脑焕然一新 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mir…...
嵌入式Linux CAN通信实战:从原理到SocketCAN编程与调试
1. 项目概述:在国产工业板上玩转CAN-BUS最近在做一个工业数据采集的项目,需要把几台分散的设备数据汇总到一个主控单元。现场布线复杂,干扰又大,RS485虽然经典,但主从轮询的机制在实时性上总觉得差点意思,而…...
OpenRGB:一站式开源RGB灯光控制神器,彻底摆脱厂商软件束缚!
OpenRGB:一站式开源RGB灯光控制神器,彻底摆脱厂商软件束缚! 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/Calc…...
Midjourney碳素印相风格实战手册(胶片级颗粒+铁盐棕褐渐变+微裂纹纹理全还原)
更多请点击: https://intelliparadigm.com 第一章:碳素印相工艺的历史溯源与数字复刻价值 碳素印相(Carbon Printing)诞生于1864年,由英国科学家约瑟夫斯旺(Joseph Swan)发明,是摄影…...
Translumo终极指南:3个简单技巧掌握实时屏幕翻译
Translumo终极指南:3个简单技巧掌握实时屏幕翻译 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否曾在游…...
东方博宜OJ入门题解:从A+B到高精度算法的实战解析
1. 东方博宜OJ平台入门指南 第一次接触在线评测系统(OJ)时,很多人都会被各种题目搞得晕头转向。东方博宜OJ作为国内知名的编程练习平台,特别适合编程新手从零开始系统学习。我刚开始刷题时也走过不少弯路,今天就和大家分享一些实战经验。 这…...
终极指南:Diablo Edit2暗黑破坏神2存档修改器完整使用教程
终极指南:Diablo Edit2暗黑破坏神2存档修改器完整使用教程 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾为暗黑破坏神2中重复刷装备而烦恼?是否因为技能点分配失…...
macOS微信防撤回终极指南:3分钟轻松安装WeChatIntercept插件
macOS微信防撤回终极指南:3分钟轻松安装WeChatIntercept插件 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在为微…...
