欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 第三章 SpringBoot静态资源导入原理探究

第三章 SpringBoot静态资源导入原理探究

2025/4/2 7:46:17 来源:https://blog.csdn.net/qushaming/article/details/142382353  浏览:    关键词:第三章 SpringBoot静态资源导入原理探究

目录

一、源码解析

二、自定义静态资源读取路径

三、WebJars引入静态资源

四、首页定制


注:本章使用的SpringBoot版本为3.3.4,老版本在配置属性和底层源码细节上会有所调整。

一、源码解析

SpringBoot使用Spring MVC内置的资源处理器来导入静态资源,如CSS、JavaScript和图片等。以下是静态资源处理器底层源码:

通过这张源码图我们可以得知,SpringBoot会先读取配置文件确认是否读取开启的自定义的静态资源读取路径(默认开启),如果没有则去读取WebJars形式的静态资源,最后再通过/**映射到的四个静态资源路径去读取资源。

SpringBoot会自动将/**的路径映射到以下路径读取静态资源内容:

  • classpath:/static/

  • classpath:/public/

  • classpath:/resources/

  • classpath:/META-INF/resources/

下图代码所示我们访问一个js脚本静态资源,SpringBoot会从static下读取到该资源。

文件路径读取优先级:resources > static > public 

二、自定义静态资源读取路径

SpringBoot同时支持自定义静态资源的位置,默认为开启状态。我们可以通过配置application.properties(yml)来实现自定义资源路径,配置的属性为 spring.web.resource.static-locations,老版本通常为spring.resources.static-locations

具体可以查看您当前SpringBoot版本的源码,搜索WebMvcAutoConfiguration类,进入WebProperties类,查看内部的具体属性staticLocations的层级关系来确认:

spring:web:resources:static-locations: classpath:/wangzhexiao/

上述的自定义配置将会告诉Spring Boot在classpath:/wangzhexiao/目录下查找各类静态资源。

注意,配置静态资源位置时,不应该包含/**后缀,因为Spring Boot会自动为你添加这个后缀。

访问资源时,SpringBoot会将根/定向到我们自定义的资源路径classpath:/wangzhexiao/

三、WebJars引入静态资源

此外,Spring Boot还提供了WebJars的支持,允许你通过WebJars的形式来引入前端资源。例如,你可以通过添加以下依赖在项目中使用jQuery:

<dependency><groupId>org.webjars</groupId><artifactId>jquery</artifactId><version>3.6.0</version></dependency>

引入WebJars后,你可以通过/webjars/**的路径来访问这些资源。

四、首页定制

通过阅读源码可知,SpringBoot对于index.html的读取与其他静态资源类似,默认从classpath的四个路径下读取:

因此我们可以尝试在static目录下创建index.html,启动服务后即可成功访问:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词