热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot中静态资源映射详解

本文深入探讨了SpringBoot如何简化Web应用中的静态资源管理,包括默认的静态资源映射规则、WebJars的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。

在现代 Web 应用开发中,静态资源(如 Javascript、CSS 和 HTML 文件)的管理至关重要。Spring Boot 提供了简洁且强大的机制来处理这些资源,极大地简化了开发流程。


1. 概述


Spring Boot 自动配置了许多静态资源映射规则,使得开发者无需手动配置即可轻松访问静态文件。官方文档:Spring Boot 官方文档


Spring Boot 默认提供了三种静态资源映射规则:



  • WebJars 映射

  • 默认静态资源映射

  • 静态首页映射


2. WebJars 映射


Web 应用通常需要引入大量的前端库(如 jQuery、Bootstrap 等)。对于传统的 Java Web 项目,这些库会被放置在 webapp 目录下。然而,在 Spring Boot 项目中,由于其打包为 JAR 文件,不存在 webapp 目录。WebJars 解决了这一问题,它允许以 JAR 包的形式引入前端资源。


WebJars 可以将前端资源打包成 JAR 文件,并发布到 Maven 仓库中进行统一管理。开发者只需在项目的 pom.xml 文件中添加相应的依赖即可使用这些资源。所有 WebJars 资源都存放在类路径下的 /META-INF/resources/webjars/ 目录中。


Spring Boot 通过 WebMvcAutoConfiguration 类自动配置了 WebJars 的映射规则,部分源码如下:


public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
} else {
this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
// 其他映射规则
}
}

这意味着所有以 /webjars/** 开头的请求都会被映射到 classpath:/META-INF/resources/webjars/ 目录。


示例:引入 jQuery


1. 在 pom.xml 文件中添加以下依赖:



org.webjars
jquery
3.6.0

2. 启动 Spring Boot 项目后,可以通过浏览器访问 http://localhost:8080/webjars/jquery/3.6.0/jquery.js 来验证 jQuery 是否成功引入。


3. 默认静态资源映射


当访问任意资源时,Spring Boot 会按照以下顺序查找静态资源文件:



  1. classpath:/META-INF/resources/

  2. classpath:/resources/

  3. classpath:/static/

  4. classpath:/public/


优先级从高到低依次为:classpath:/META-INF/resources/ > classpath:/resources/ > classpath:/static/ > classpath:/public/。Spring Boot 会根据请求路径,依次在这些目录中查找静态资源,直到找到匹配的文件。


4. 静态首页映射


静态首页(或欢迎页)通常是一个名为 index.html 的文件,位于静态资源文件夹中。当用户访问根路径(如 //index.html)时,Spring Boot 会自动加载该文件作为首页。查找顺序与默认静态资源相同,即优先查找高优先级的目录。


推荐阅读
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 深入解析Spring Boot自动配置机制
    本文旨在深入探讨Spring Boot的自动配置机制,特别是如何利用配置文件进行有效的设置。通过实例分析,如Http编码自动配置,我们将揭示配置项的具体作用及其背后的实现逻辑。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何在WPS Office for Mac中调整Word文档的文字排列方向
    本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
author-avatar
mobiledu2502932321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有