SpringBoot——Web开发(静态资源映射)
程序员文章站
2022-08-04 17:25:28
SpringBoot对于SpringMVC的自动化配置都在WebMVCAutoConfiguration类中。 ......
静态资源映射
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,自定义index.html
favicon.ico是浏览器左上角的图标,可以放在静态资源路径下或者类路径下,静态资源路径优先级高。
springboot启动后默认在静态资源目录下寻找index.html,如果没有找到;就会去resource/templates目录下寻找index.html(使用thymeleaf模板)
定制banner
创建banner.txt文件置于resource目录下
代码参考:
下一篇: 海藻糖是什么?海藻糖的主要用途有哪些?
推荐阅读
-
[springboot 开发单体web shop] 3. 用户注册实现
-
[springboot 开发单体web shop] 7. 多种形式提供商品列表
-
SpringBoot中的五种对静态资源的映射规则
-
[springboot 开发单体web shop] 4. Swagger生成Javadoc
-
springboot中jsp引用静态资源css,js的实现方法
-
nodejs构建本地web测试服务器 如何解决访问静态资源问题
-
web项目自定义路由_实现静态资源URL控制
-
SpringBoot——Web开发(静态资源映射)
-
Nginx搭建静态资源Web服务器
-
Nginx(一):静态资源web服务器配置详解