然后对应的pom配置主要就加入一个资源拷贝动作:
<build> <resources> <resource> <directory>${project.basedir}/src/main/resources</directory> <targetPath>${project.build.outputDirectory}/META-INF/resources/webjars</targetPath> </resource> </resources> </build>之后利用maven打包后,就可以看见其目录结构了:
然后我们删除了我们原先的资源文件或者图片重命名下,并引入依赖:
<!-- 静态资源依赖 --> <dependency> <groupId>cn.lqdev.learning</groupId> <artifactId>springboot-webjars</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>最后重新启动应用,再次访问下,依旧是正常显示的:
一点技巧我们可以看见,我们在index.html中访问图片是这么访问的:webjars/demo/0.0.1/springboot.jpg。咋一看,可能觉得没问题。但当我们静态资源版本有更新时,我们不是又需要去改下这个静态资源的引入路径,那何来的优雅!所以官方提供了一个webjars-locator包,就是来解决此问题的。
0.pom文件中,加入依赖(这里注意,Springboot(1.5.15.RELEASE)父类pom文件中已经指定了此版本为:0.32-1,所以我们可以不需要去添加版本了):
<dependency> <groupId>org.webjars</groupId> <artifactId>webjars-locator</artifactId> </dependency>1.修改index.html中的图片路径
原来:
现在:
<img alt="sprinboot" src="http://www.likecs.com/webjars/demo/springboot.jpg">2.修改配置类,加入resourceChain属性,不然还是去除了版本时路径找不到的,这里需要注意。
@Configuration public class WebConfig extends WebMvcConfigurerAdapter{ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //配置映射关系 //即:/webjars/** 映射到 classpath:/META-INF/resources/webjars/ registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/") //新增 resourceChain 配置即开启缓存配置。 //不知道为何不加这个配置 设置了 webjars-locator 未生效。。没过多纠结。。 .resourceChain(true);//生产时建议开启缓存(只是缓存了资源路径而不是资源内容),开发是可以设置为false } }这样之后,我们只需要修改依赖包即可,前端都不需要重新改了。
相关资料
https://www.webjars.org/contributing
静态文件处理这篇讲的不错,可以看看:https://blog.csdn.net/xichenguan/article/details/52794862
总结本章节主要是讲解了webjars的使用。使用是相对来说比较简单了,有了这个后,我们之后去管理前端的静态资源就很方便了,也能引用已经打好jar的第三方库了,是不是很方便!
最后目前互联网上很多大佬都有SpringBoot系列教程,如有雷同,请多多包涵了。本文是作者在电脑前一字一句敲的,每一步都是实践的。若文中有所错误之处,还望提出,谢谢。
老生常谈个人QQ:499452441
微信公众号:lqdevOps
个人博客:
原文地址:
完整示例:https://github.com/xie19900123/spring-boot-learning/tree/master/chapter-18
静态文件工程:https://github.com/xie19900123/spring-boot-learning/tree/master/springboot-webjars