我们经常会使用springboot创建web应用,在springboot中金静态资源是如何存放的呢?
一、静态资源映射规则
我们先创建一个springboot项目。使用https://start.spring.io/idea内置创建一个项目,不多说了。
我们要引入我们前端资源,我们项目中有许多的静态资源,比如css,js等文件,我们以前写
项目与都是自己建立文件夹,自己设计访问路径,但是现在,这个SpringBoot怎么处理呢?
如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在
这里面的,对吧!但是我们现在的pom呢,打包方式是为jar的方式,那么这种方式
SpringBoot能不能来给我们写页面呢?当然是可以的,但是SpringBoot对于静态资源放置的位置,是有所差别的,有自己的一套规则!
SpringBoot中,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类里面;我们可以去看看 WebMvcAutoConfigurationAdapter 中有很多配置方法;有一个方法:addResourceHandlers 添加资源处理
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//默认配置没有找到静态资源
if (!this.resourceProperties.isAddMappings()) {
// 已禁用默认资源处理
logger.debug("Default resource handling disabled");
}
else {
Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
//webjars maven 引入静态资源
if (!registry.hasMappingForPattern("/webjars/**")) {
this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjar