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

38、springboot为 spring mvc 提供的静态资源管理,覆盖和添加静态资源目录

springboot为 spring mvc 提供的静态资源管理

★ Spring Boot为Spring MVC提供了默认的静态资源管理:

▲ 默认的四个静态资源目录:

/META-INF/resources > /resources > /static > /public

▲ ResourceProperties.java类的源代码,可看到CLASSPATH_RESOURCE_LOCATIONS常量的定义:

CLASSPATH_RESOURCE_LOCATIONS = new String[]{“classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”};

这意味着为应用添加静态资源(图片、JS、css)时,只要将这些资源添加到四个目录其中之一即可。

【结论:】通常来说,只要将静态资源添加到resources/public或resources/static目录即可。
甚至也可以是resources/resources(或resources/META-INF/resources),其中前一个resources/只是代表类加载路径。

【注意:】如果非要将静态资源放在resources目录下,请一定要在项目的resources目录下
新建resources目录或META-INF/resources才行。

代码演示:
在这里插入图片描述
不清楚为什么static包下面的图片没法加载出来
在这里插入图片描述

★ 定制默认的静态资源目录

▲ 覆盖原有的静态资源目录:

- 通过spring.web.resources.static-locations配置属性设置静态资源存储位置,但这种方式会覆盖Spring Boot默认的静态资源存储路径。- 也可通过spring.mvc.static-path-pattern配置属性设置静态资源的映射路径(默认值是/**),但这种方式会覆盖Spring Boot默认的静态资源映射路径。若将该属性值设为/abc/**,那意味着所有静态资源路径的前面都要添上/abc/前缀由于spring.mvc.static-path-pattern属性的默认值是/**,因此意味着无论将静态资源放在类经加载路径下的/static、/resources, /public,/MEAT-INF/resources目录下,实际在页面中访问这些静态资源时,都只需从根路径下访问即可

代码演示:
1、自己添加一个mypicture文件夹作为静态资源目录,然后在yml配置文件中进行配置,
2、yml:指定 mypicture 文件夹为静态资源的目录,然后映射路径为 /ljh/** ,表示要想访问mypicture 这个静态资源目录里面的资源,那么访问的路径就得加上 /ljh/ 这个路径

如图:其他的public 文件夹的图片都不显示了,因为通过spring.web.resources.static-locations配置属性设置静态资源存储位置,这种方式会覆盖Spring Boot默认的静态资源存储路径
通过spring.mvc.static-path-pattern配置属性设置静态资源的映射路径(默认值是/**),这种方式会覆盖Spring Boot默认的静态资源映射路径。
在这里插入图片描述

▲ 添加静态资源目录:

 若要添加额外的静态资源路径,可实现WebMvcConfigurer接口,并通过该接口的如下方法:@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry){registry.addResourceHandler("/xx/**")                         // ① 指定静态资源的映射目录.addResourceLocations("classpath:/xxx/")        // ②   指定添加额外静态资源目录。}

代码演示:
不覆盖原本的静态资源路径,新增就行

弄一个配置类,额外添加静态资源目录
在这里插入图片描述

在这里插入图片描述

无论是系统默认的静态资源目录,还是自己添加的静态资源目录,都能显示图片,这次的自定义的静态资源目录,不是覆盖项目默认的,而是添加进去的并存的。

这个系统默认的static静态资源目录没有加载出图片,不理解。
在这里插入图片描述

默认的静态资源目录下的映射路径是直接映射到根路径的。
在这里插入图片描述

相关文章:

38、springboot为 spring mvc 提供的静态资源管理,覆盖和添加静态资源目录

springboot为 spring mvc 提供的静态资源管理 ★ Spring Boot为Spring MVC提供了默认的静态资源管理: ▲ 默认的四个静态资源目录: /META-INF/resources > /resources > /static > /public ▲ ResourceProperties.java类的源代码&#xff0…...

Go 输出函数

Go语言拥有三个用于输出文本的函数: Print()Println()Printf() Print() 函数以其默认格式打印其参数。 示例 打印 i 和 j 的值: package mainimport "fmt"func main() {var i, j string "Hello", "World"fmt.Print(…...

L1-037 A除以B(Python实现) 测试点全过

题目 真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“ A / B 商 A/B商 A/B商”的格式输出结果。 输入格式 输入在第一行给出两个整数 A A A和 B ( − 100 ≤ A , B ≤ 100 ) B(−100≤A,B≤100&#xff0…...

睿思BI旗舰版V5.3正式发布

发布时间:2023-7-20 主要更新内容: 1.增加3D地图功能 2.增加水球图 3.增加扇形图,在数据大屏 - 自定义组件中定义。 4.增加指标引导线功能,在数据大屏 - 自定义组件中定义。 5.详情页增加回调函数功能。 6.大屏/仪表盘模版下载,…...

基于Jenkins自动化部署PHP环境---基于rsync部署

基于基于Jenkins自动打包并部署Tomcat环境_学习新鲜事物的博客-CSDN博客环境 准备git仓库 [rootgit ~]# su - git 上一次登录:五 8月 25 15:09:12 CST 2023从 192.168.50.53pts/2 上 [gitgit ~]$ mkdir php.git [gitgit ~]$ cd php.git/ [gitgit php.git]$ git --b…...

学信息系统项目管理师第4版系列02_法律法规

1. 信息安全的法律体系可分为四个层面 1.1. 一般性法律法规,如宪法、国家安全法,国家秘密法 1.2. 规范和惩罚信息网络犯罪的法律,如刑法、《全国人大常委会关于维护互联网安全的决定》等 1.3. 直接针对信息安全的特别规定,如《…...

【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库

Doris:基于 MPP 架构的高性能实时分析型数据库 1.Doris 介绍 Apache Doris 是一个基于 MPP(Massively Parallel Processing,大规模并行处理)架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知&#xff…...

【rust/egui】(五)看看template的app.rs:SidePanel、CentralPanel以及heading

说在前面 rust新手,egui没啥找到啥教程,这里自己记录下学习过程环境:windows11 22H2rust版本:rustc 1.71.1egui版本:0.22.0eframe版本:0.22.0上一篇:这里 SidePanel 侧边栏,如下图 …...

MTK6833_MT6833核心板_天玑700安卓5G核心板规格性能介绍

MTK6833安卓核心板采用台积电 7nm 制程的5G SoC,2*Cortex-A766*Cortex-A55架构,搭载Android12.0操作系统,主频最高达2.2GHz 。内置 5G 双载波聚合技术(2CC)及双 5G SIM 卡功能,实现优异的功耗表现及实时连网…...

Maven-Java代码格式化插件spring-javaformat

TOC 官方文档:点击进入 前言 项目研发过程中,随着团队人员的增加变更环境配置的不同,有些同学甚至没有格式化代码的习惯,导致编码风格不统一杂乱无章,为解决这一问题引入Spring提供的格式化代码插件。插件支持多种方…...

设计模式之八:模板方法模式

泡咖啡和泡茶的共同点&#xff1a; 把水煮沸沸水冲泡咖啡/茶叶冲泡后的水倒入杯子添加糖和牛奶/柠檬 class CoffeineBeverage { public:void prepareRecipe(){boilWater();brew();pourInCup();addCondiments();}private:void boilWater(){std::cout << "Boiling w…...

hive可以删除单条数据吗

参考&#xff1a; hive只操作几条数据特别慢 hive可以删除单条数据吗_柳随风的技术博客_51CTO博客...

python3-Flask实现Api接口

1、&#xff1a;python3-Flask实现Api接口_flask api_Shiro to kuro的博客-CSDN博客 2、 Flask框架的web开发01&#xff08;Restful API接口规范&#xff09;_flask patch post_~须尽欢的博客-CSDN博客...

微分享 - 超实用开发日常排查问题Linux运维命令

目录 CPUCPU基本信息CPU使用情况ps 命令可用于确定哪个进程占用了 CPU 内存free 网络查看端口curl 常用命令 文件df 、du 区别磁盘使用情况文件大小文件下载压缩&解压缩查找文件查找文件内容 进程CPU 使用来升序排序内存 使用升序排序 其他常用操作系统进本信息赋予文件执行…...

Pico如何使用C/C++选择哪个I2C控制器,以及SDA和SCL针脚

本文一开始讲述了解决方案&#xff0c;后面是我做的笔记&#xff0c;用来讲述我的发现流程和探究的 Pico I2C 代码结构。 前提知识 首先要说明一点&#xff1a;Pico 有两个 I2C&#xff0c;也就是两套 SDA 和 SCL。这点你可以在针脚图中名字看出&#xff0c;比如下图的 Pin 4…...

求生之路2私人服务器开服搭建教程centos

求生之路2私人服务器开服搭建教程centos 大家好我是艾西&#xff0c;朋友想玩求生之路2(left4dead2)重回经典。Steam玩起来有时候没有那么得劲&#xff0c;于是问我有没有可能自己搭建一个玩玩。今天跟大家分享的就是求生之路2的自己用服务器搭建的一个心路历程。 &#xff0…...

Redis7之介绍(一)

1. 是什么 Redis:REmote Dictionary Server(远程字典服务器&#xff09; Remote Dictionary Server( 远程字典服务)是完全开源的&#xff0c;使用ANSIC语言编写遵守BSD协议&#xff0c;是一个高性能的Key-Value数据库提供了丰富的数据结构&#xff0c;例如String、Hash、List、…...

基于Python+djangoAI 农作物病虫害预警系统智能识别系统设计与实现(源码&教程)

1.背景 随着科技的发展&#xff0c;机器学习技术在各个领域中的应用越来越广泛。在农业领域&#xff0c;机器学习技术的应用有助于提高农作物的产量和质量&#xff0c;降低农业生产的成本。本文针对农作物健康识别问题&#xff0c;提出一种基于机器学习方法的农作健康识别系统&…...

Kotlin Flow 转换以及上下游处理

本片文章主要介绍Flow上下游处理&#xff0c;上游一个Flow使用map&#xff0c;上游两个Flow使用zip&#xff0c;上游三个Flow及以上使用combine 1、下面代码展示了upStreamFlow作为上游&#xff0c;downStreamFlow作为下游&#xff0c;通过对upStreamFlow使用map操作符函数将…...

深度学习3. 强化学习-Reinforcement learning | RL

强化学习是机器学习的一种学习方式&#xff0c;它跟监督学习、无监督学习是对应的。本文将详细介绍强化学习的基本概念、应用场景和主流的强化学习算法及分类。 目录 什么是强化学习&#xff1f; 强化学习的应用场景 强化学习的主流算法 强化学习(reinforcement learning) …...

TCP/IP网络江湖武艺传承:物理层与通信江湖的幕后

目录 〇、引言:进入现代通信技术的江湖 一、数字信号与模拟信号:传承与差异...

智慧能源管理系统助力某制造企业提高能源利用效率

随着全球能源需求不断增加和能源价格的上涨&#xff0c;企业和机构日益意识到能源管理的重要性。传统的能源管理方式不仅效率低下&#xff0c;还容易造成资源浪费和环境污染。因此&#xff0c;许多企业开始探索采用智慧能源管理系统来提高能源利用效率&#xff0c;降低能源成本…...

opencv/C++ 人脸检测

前言 本文使用的测试资源说明&#xff1a; opencv版本&#xff1a;opencv 4.6.0 人脸检测算法 Haar特征分类器 Haar特征分类器是一个XML文件&#xff0c;描述了人体各个部位的Haar特征值。包括&#xff1a;人脸、眼睛、鼻子、嘴等。 opencv 4.6.0自带的Haar特征分类器&…...

UE4/5的Custom节点:在VScode使用HLSL(新手入门用)

目录 custom节点 VSCode环境安装 将VSCode里面的代码放入Custom中 custom节点 可以看到这是一个简单的Custom节点&#xff1a; 而里面是可以填写代码的&#xff1a; 但是在这里面去写代码会发现十分的繁琐【按下enter后&#xff0c;不会换行&#xff0c;也不会自动缩进】 …...

小研究 - J2EE 应用服务器的软件老化测试研究

软件老化现象是影响软件可靠性的重要因素&#xff0c;长期运行的软件系统存在软件老化现象&#xff0c;这将影响整个业务系统的正常运行&#xff0c;给企事业单位带来无可估量的经济损失。软件老化出现的主要原因是操作系统资源消耗殆尽&#xff0c;导致应用系统的性能下降甚至…...

Tomcat和Servlet基础知识的讲解(JavaEE初阶系列16)

目录 前言&#xff1a; 1.Tomcat 1.1Tomcat是什么 1.2下载安装 2.Servlet 2.1什么是Servlet 2.2使用Servlet来编写一个“hello world” 1.2.1创建项目&#xff08;Maven&#xff09; 1.2.2引入依赖&#xff08;Servlet&#xff09; 1.2.3创建目录&#xff08;webapp&a…...

开源在大数据和分析中的角色

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

C#,《小白学程序》第四课:数学计算

1 文本格式 /// <summary> /// 《小白学程序》第四课&#xff1a;数学计算 /// 这节课超级简单&#xff0c;就是计算成绩的平均值&#xff08;平均分&#xff09; /// 这个是老师们经常做的一件事。 /// </summary> /// <param name"sender"></…...

SparkML机器学习

SparkML 机器学习: 让机器学会人的学习行为, 通过算法和数据来模拟或实现人类的学习行为&#xff0c;使之不断改善自身性能。 机器学习的步骤: 加载数据特征工程 数据筛选: 选取适合训练的特征列, 例如用户id就不适合, 因为它特性太显著.数据转化: 将字符串的数据转化数据类型…...

vue Promise 对象 等待所有异步处理完成 再继续处理

1 定义数据集合 用来搜集所有数据 let promises []; // 用来存储所有的 Promise 对象 2 promise对象 异步 返回数据 同时添加数据到promises 列表 // 依次读取列表元素的表 for (let symbol of symbolList) {let promise new Promise((resolve, reject) > { // 将请求…...

最新宝安区疫情公布/谷歌seo和百度seo

解决方案&#xff1a;删除project中的user文件&#xff0c;再重新打开pro文件即可。...

高端网站案例/网站搜索优化技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2021年安全员-A证&#xff08;广西省&#xff09;考试技巧为正在备考安全员-A证&#xff08;广西省&#xff09;操作证的学员准备的理论考试专题&#xff0c;每个月更新的安全员-A证&#xff08;广西省&#xff09;祝…...

阿里云网站建设认证答案/百度论坛

SQL Server 5030错误解决办法 今天在使用SQL Server时&#xff0c;由于之前创建数据库忘记了设置Collocation&#xff0c;数据库中插入中文字符都是乱码&#xff0c;于是到DataBase的Options中修改Collocation&#xff0c;出现了The database could not be exclusively locked …...

电影网站制作教程好不好/成都新闻最新消息

Java: Unresolved compilation problem的解决方法参考文章&#xff1a; &#xff08;1&#xff09;Java: Unresolved compilation problem的解决方法 &#xff08;2&#xff09;https://www.cnblogs.com/programmer1/p/4411080.html 备忘一下。...

沧州高端网站建设公司/百度图像搜索

字符串的排列 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路 解法一 集合和队列。 首先&#xff0c;给定字符串&#xff0c;求字符串的全排列&#xff0c;那么结…...

网站建设电话客服话术/windows优化大师官方

文章目录1. 简介2. 开发工具3. 命名规范3.1. 场景3.1.1. MainScene3.1.2. SelectScene3.1.3. GameScene4. 代码仓库地址1. 简介 Antivirus is a 3d game based on Unity 2020.1.0a25.3171 Personal. 2. 开发工具 Unity官方下载与安装与使用说明 3. 命名规范 3.1. 场景 3.…...