静态资源与首页展示【源码剖析】

简介: 静态资源与首页展示【源码剖析】

如果是一个web应用,在main下面会有个webapp,之前都是将所有页面导在这里;现在springboot也有静态资源放置的位置,但是有规定!


首先,了解一下静态资源映射规则!


在idea界面double Shift键:搜索WebMvcAutoConfiguration,SpringMVC的web配置都在这个配置类里面,其中有一个方法:addResourceHandlers 添加资源处理

image.png

第一种静态资源映射规则!


源码解析:看一下/webjars/**,都需要去 classpath:/META-INF/resources/webjars/ 找相对应的资源,Webjars本质就是以jar包的方式引入我们的静态资源


比如要使用jQuery,我们只需引入jQuery对应版本的pom依赖即可!

image.png

查看webjars目录结构

image.png

访问:http://localhost:8080/webjars/jquery/3.4.1/jquery.js

image.png

第二种静态资源映射规则!

可以在staticPathPattern发现第二种映射规则 :/** , 说明可以访问当前项目的任意资源image.png

它会去找 resourceProperties 的Resources类,我们可以点进去看一下分析:

image.png

它会去寻找资源的文件夹,即数组的内容。


优先级:resources>static(默认)>public


所以四个目录存放的静态资源可以被我们识别


比如访问 http://localhost:8080/1.js即可以访问出内容


自定义静态资源路径:在application.properties中配置;


spring.mvc.static-locations=classpath:/Long/**

一旦自己定义了静态文件夹的路径,原来的自动配置就都会失效了!

现在我们来看看首页是如何处理的,先去看看源码

image.png

继续看getIndexHtml

image.png

访问:http://localhost:8080/       就会找静态资源文件夹下的 index.html

相关文章
|
Java API 数据库
Java一分钟之-JPA注解:@Entity, @Table, @Id等
【6月更文挑战第14天】Java Persistence API (JPA) 是Java开发中的ORM框架,通过注解简化数据访问层。本文介绍了三个核心注解:`@Entity`标识实体类,`@Table`自定义表名,`@Id`定义主键。易错点包括忘记添加`@Entity`、未正确设置主键。建议使用`@GeneratedValue`和`@Column`细化主键策略和字段映射。正确理解和应用这些注解能提高开发效率和代码质量。
1052 3
|
11月前
|
架构师 中间件 API
微服务和 SOA 的 6 大核心区别,你都知道吗?
本文详解SOA与微服务的六大区别,帮助更好地理解和应用这两种架构,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
微服务和 SOA 的 6 大核心区别,你都知道吗?
|
JSON Java UED
uniapp:使用DCloud的uni-push推送消息通知(在线模式)java实现
以上展示了使用Java结合DCloud的uni-push进行在线消息推送的基本步骤和实现方法。实际部署时,可能需要依据实际项目的规模,业务场景及用户基数进行必要的调整和优化,确保消息推送机制在保证用户体验的同时也满足业务需求。
1102 0
|
Java
SpringBoot实现Excel导入导出
SpringBoot实现Excel导入导出
226 0
|
机器学习/深度学习 算法 决策智能
ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别(下)
ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别(下)
814 0
|
设计模式 Python
一日一技:在 Python 里面如何实现一个抽象类
一日一技:在 Python 里面如何实现一个抽象类
311 0
一日一技:在 Python 里面如何实现一个抽象类
|
存储 小程序 安全
接入 SDK 结果翻车了?了解 SDK 的那些事
前段时间,二狗子的朋友圈被工信部发布的《关于下架侵害用户权益 App 名单的通报》给刷屏了。公告中指出有 90 款 App 未按照要求完成整改将会下架。而这 90 款 App 涉及全国各地教育、游戏、安全、新闻等诸多领域。
491 0
接入 SDK 结果翻车了?了解 SDK 的那些事
|
缓存 Java Linux
Java IO
2075 0