重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇“SpringBoot静态资源映射的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot静态资源映射的方法”文章吧。
成都创新互联专注于建始企业网站建设,响应式网站设计,商城建设。建始网站建设公司,为建始等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
SpringBoot对于SpringMVC的自动化配置都在WebMVCAutoConfiguration类中。
其中一个静态内部类WebMvcAutoConfigurationAdapter实现了WebMvcConfigurer接口。(361)
WebMvcConfigurer接口中定义了addResourceHandlers处理静态资源的默认映射关系.(500)
addResourceHandlers在WebMvcAutoConfigurationAdapter类中实现
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(); if (!registry.hasMappingForPattern("/webjars/**")) { this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/"}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl)); } String staticPathPattern = this.mvcProperties.getStaticPathPattern(); if (!registry.hasMappingForPattern(staticPathPattern)) { this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl)); } } }
其中
this.resourceProperties.getStaticLocations()
返回静态资源的默认映射关系,
getStaticLocations()方法在ResourceProperties中定义
其中,
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
第五个默认的资源映射:在静态方法getResourceLocations中定义
/
小结:
默认情况下,可以在以下五个位置放置静态资源
classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classpath:/public/ /
【静态资源一般放在classpath:/static/目录下】
favicon.ico是浏览器左上角的图标,可以放在静态资源路径下或者类路径下,静态资源路径优先级高。
SpringBoot启动后默认在静态资源目录下寻找index.html,如果没有找到;就会去resource/templates目录下寻找index.html(使用Thymeleaf模板)
以上就是关于“SpringBoot静态资源映射的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。