当前位置: 首页 > article >正文

Spring Boot静态资源访问顺序

在 Spring Boot 中,staticpublic 目录都用于存放静态资源(如 HTML、CSS、JavaScript、图片等文件),但它们在使用上有一些细微的区别。以下是它们的详细对比:


1. 默认优先级

Spring Boot 会按照以下优先级加载静态资源:

  1. classpath:/META-INF/resources/
  2. classpath:/resources/
  3. classpath:/static/
  4. 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.html
  • logo.png 的访问 URL:http://localhost:8080/images/logo.png

4. 自定义静态资源路径

如果需要自定义静态资源路径,可以在 application.propertiesapplication.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 目录加载静态资源,而不是默认的 staticpublic 目录。


5. 总结

特性static 目录public 目录
优先级较高较低
推荐用途前端静态资源(HTML、CSS、JS)公共资源(图片、字体、下载文件)
默认路径classpath:/static/classpath:/public/
访问方式http://localhost:8080/filenamehttp://localhost:8080/filename

选择建议

  • 如果项目主要是前端应用,推荐将静态资源放在 static 目录。
  • 如果需要存放通用的公共资源(如图片、字体等),可以放在 public 目录。
  • 如果需要更灵活的管理,可以通过配置自定义静态资源路径。

http://www.kler.cn/a/575910.html

相关文章:

  • ubuntu22.04本地部署OpenWebUI
  • 逐梦 DBA:从数据库概述出发
  • Redis——缓存穿透、击穿、雪崩
  • 【maven】maven依赖报错解决方式
  • 【每日学点HarmonyOS Next知识】对话框回调问题、输入区域最大行数、web自定义节点、icon图标库、软键盘开关
  • Ubuntu的软件源
  • 元宇宙运维:虚拟化与数字孪生系统
  • 玩转python: 掌握Python数据结构之链表
  • 【从零开始学习计算机科学】数字逻辑(六)组合逻辑电路
  • ES Module 的 import 导入和 import () 动态导入
  • 《Python实战进阶》No13: NumPy 数组操作与性能优化
  • 在16卡服务器上使用最新版的CUDA和驱动训练`llama - 2 - 7b`和`llama - 2 - 70b`模型,并生成训练指标数据
  • 以商业思维框架为帆,驭创业浪潮前行
  • 智慧农业中,物联网(IoT)通过集成产量数据和市场价格信息
  • 计算机毕业设计SpringBoot+Vue.js校园资产管理(源码+文档+PPT+讲解)
  • 23种设计模式之《适配器模式(Adapter)》在c#中的应用及理解
  • 数字孪生对于新基建的价值浅析,算是抛砖引玉。
  • 网络安全总集成服务
  • svn删除所有隐藏.svn文件,文件夹脱离svn控制
  • 基于磁数据的伤痕、生锈、断丝分类训练平台搭建规划