静态资源存放的位置

2023-11-18

存放的四个位置

"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"

如果要访问的话,是当前项目的根路径+静态资源名。
在这里插入图片描述
在这里插入图片描述
因为这个图片的名称是favicon.ico,因此在访问网站的时候,在页面的左上角,会出现一个小图标。
在这里插入图片描述
原理: 静态映射/**。
请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面,因此,如果请求和静态资源同名的话,先处理请求。

优先级

优先级:resources>static>public
我们可以在resources根目录下新建对应的文件夹,都可以存放我们的静态文件;

比如我们访问 http://localhost:8080/1.js , 他就会去这些文件夹中寻找对应的静态资源文件;

静态资源在这四个路径下的原因。

SpringBoot启动默认加载 xxxAutoConfiguration 类(自动配置类)。SpringMVC功能的自动配置类 WebMvcAutoConfiguration生效
在这里插入图片描述
在这里插入图片描述
给容器中配置了下面这个组件
在这里插入图片描述
配置文件的相关属性和xxx进行了绑定。WebMvcProperties=spring.mvc,ResourceProperties=spring.resources
点开WebProperties,我们会发现其中的静态的静态的资源路径已经默认的给配好了。
在这里插入图片描述
不过我们可以会静态资源的默认路径进行更改。

自定义静态资源路径

我们也可以自己通过配置文件来指定一下,哪些文件夹是需要我们放静态资源文件的,在application.properties中配置:
在这里插入图片描述
在这里插入图片描述
一旦自己定义了静态文件夹的路径,原来的自动配置就都会失效了!

静态资源访问前缀的问题

这在springboot中同样是有默认配置的。
点开WebMvcProperties,在其中我们可以找到下面这个属性
在这里插入图片描述
因此在springboot中是没有配置访问前缀的,我们可以自己配置。
在这里插入图片描述
在这里插入图片描述
当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找,在这里修改了静态资源的访问位置和访问前缀,我们是可以是可以访问的,但是如果是访问欢迎页的话,是可能出现错误的。
没有加前缀的情况下。
在这里插入图片描述
在这里插入图片描述
加了前缀的情况下。
在这里插入图片描述
是访问不了欢迎页的。
我们来看看其中的原因。
点开WebMvcAutoConfiguration这个类,我们可以找一下处理欢迎页请求的Handlermapping。
在这里插入图片描述
点开WelcomePageHandlerMapping,我们可以看到在这个类的代码中对是否请求欢迎页进行了判断。
在这里插入图片描述
从第一个if我们可以看出来,一旦我们修改了前缀的话,就不会访问到欢迎页了。

关于webjar的一些知识。

springboot已经配置了当我们访问为jar包的时候,会自动映射 /webjars/**这个路径。
在这里插入图片描述
我们可以在后面直接访问。
http://localhost:8080/webjars/jquery/3.5.1/jquery.js
在这里插入图片描述
上面的自动映射在源码中也已经写好了。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态资源存放的位置 的相关文章

随机推荐

  • python中的list如何深度拷贝

    在 Python 中 可以使用 copy 模块中的 deepcopy 函数来进行深度拷贝 示例 import copy original list 1 2 3 4 5 6 7 8 9 copied list copy deepcopy or
  • c++全局变量的使用方式

    c 全局变量的使用方式 在cpp文件中定义 在头文件中定义 在cpp文件中定义 主函数中的使用 extern int aa extern int bb 在头文件中定义 在主函数中 在 h文件中声明 需要加extern关键字 在 cpp文件中
  • Linux环境下gcc编译链接库-lz -lrt -lm -lc都是什么库?

    编译链接库 lz lrt lm lc都是什么库 lz 压缩库 Z lrt 实时库 real time shm open系列 lm 数学库 math lc 标准C库 C lib dl 是显式加载动态库的动态函数库
  • Linux下ImageNet2012数据集下载及其配置

    简明扼要 一 训练集下载 137G http www image net org challenges LSVRC 2012 nnoupb ILSVRC2012 img train tar 验证集下载 http www image net
  • FCN模型训练中遇到的困难

    FCN模型训练中遇到的困难 标签 深度学习FCN神经网络caffe 2017 02 24 10 54 2675人阅读 评论 6 收藏 举报 分类 深度学习 18 版权声明 本文为博主原创文章 未经博主允许不得转载 前前后后大概忙了3个月了
  • 嵌入式数据库sqlite3【进阶篇】-子句和函数的使用,小白一文入门

    更多信息请关注公众号 一口Linux 在 嵌入式数据库sqlite3 基础篇 基本命令操作 小白一看就懂 一文中讲解了如何实现sqlite3的基本操作增删改查 本文介绍一些其他复杂一点的操作 比如where order by having
  • 基于内容的视频信息检索系统

    基于内容的视频信息检索系统 汪志强 江西财经大学信息管理学院 09信息管理与信息系统2班 摘 要 本文从基于内容的视频信息检索技术的发展历史出发 对基于内容的视频检索系统的技术要点及主要的功能模块进行了讨论和分析 并说明了当今技术存在的缺陷
  • MFC Windows 程序设计(一)-程序员的解放

    MFC Windows 程序设计 一 程序员的解放 程序之美 很久很久以前 程序员是一个很辛苦的工作 因为那时候大多数的软件都是用C语言编写的 Microsoft Visual Basic还没有出现 更不要说现在的Java Android
  • Tomcat修改默认端口号

    1 背景 在默认情况下 tomcat的端口是8080 使用了两个tomcat 那么就需要修改其中的一个的端口号才能使得两个同时工作 2 方法 2 1改动一 那么 如何修改tomcat的端口号呢 首先到安装目录 或者解压目录 下找到conf文
  • VUE之Echarts图表x轴y轴提示文字过长处理为省略号

    只需对显示文字格式修改即可 yAxis type category axisLine show false 轴线 axisTick show false 去除刻度 axisLabel formatter function params co
  • silk lobe资源公众号_资源合集

    11 月 十一月 iOS内置韩文字体 Apple SD Gothic Neo 锤子 黑 Smartisan 与方正合作定制的UI黑体 Emoji 鸽了好久的可爱 Emoji 字体 移植到安卓手机 沙扬娜拉 岩田仿宋 复古聚珍仿宋风格 返璞归
  • chatgpt赋能python:Python如何优化中文SEO

    Python如何优化中文SEO Python 作为一种流行的编程语言 可以用来开发各种不同的应用程序 当涉及到网络营销和搜索引擎优化 SEO 时 Python的功能也非常有用 在本篇文章中 我们将介绍如何使用Python来优化中文SEO 以
  • opencv显示对比

    在opencv中我们一般都要展示处理前后图像的对比 有时候我们会imshow两次来展示两张图片 那为什么我们不放在一个图片里呢 这样显然是更加优雅的模式 上代码 Mat combineImage Mat before Mat after a
  • Go语言实现Onvif客户端:4、配置网络信息

    Go语言实现Onvif客户端 4 配置网络信息 文章目录 Go语言实现Onvif客户端 4 配置网络信息 1 思路 2 代码 上一节获取到网络接口token后 就可进行一些网络配置了 这里我们暂时只实现进行ip地址的配置接口和封装 1 思路
  • 【SpringCloud】pom.xml文件解析

    本文档为本人学习交流所用 参考原文档 https www cnblogs com hoyong articles 13034270 html 1 pom xml是什么 pom是Project Object Model 项目对象模型 的缩写
  • 虚表

    虚表 虚函数表 C 中 一个类存在虚函数 那么编译器就会为这个类生成一个虚函数表 在虚函数表里存放的是这个类所有虚函数的地址 虚表从属于类 编译器会为包含虚函数的类加上一个成员变量 该成员变量是一个指向虚函数表的指针 因此虚表指针是一个成员
  • UE4安卓打包配置(大陆内网络整顿后,Android打包时AndroidWorks无法使用的解决方法)

    由于国内进行了网络整顿 UE4官网上用CodeWorksforAndroid下载安卓打包工具配置的方法已经不能使用了 开了VPN也链接不上 这使得用UE4打包配置安卓游戏变得非常麻烦 博主捣鼓了好几天才打包成功 深感在中国学习UE4的艰难与
  • 力扣-图解算法数据结构-剑指 Offer 05. 替换空格

    题目要求 力扣题解 代码 program mydemo description 剑指 Offer 05 替换空格 author Mr zeng create 2021 03 05 11 04 public class Solution1 p
  • @escook/request-miniprogram基于 Promise 的小程序网路请求库

    安装 npm install escook request miniprogram 导入 按需导入 http 对象 import http from escook request miniprogram 将按需导入的 http 挂载到 wx
  • 静态资源存放的位置

    存放的四个位置 classpath META INF resources classpath resources classpath static classpath public 如果要访问的话 是当前项目的根路径 静态资源名 因为这个图