在实际的项目开发中,由于前期选型使用了HTML静态页面,然后通过Iframe的方式进行append,然后在数据再通过ajax方式去获取,这种方式页面的加载不需要经过后台,理论上加载速度较快,可以较好的使用浏览器缓存,但是坑也就在这!
        由于项目使用的人员是面对年经不小的人员,他们对于pc端的操作都较单一,导致我们页面元素进行修改后,由于缓存的存在导致经常不会自动加载,出现各种奇葩问题,经常需要运维手把手的指导进行浏览器清理缓存,尤其是在一些大的改动时,会影响到使用效率与体验,为解决这个问题,我们就想通过给页面加版本号的方式进行每次发版后自动刷新下。
        到此都是比较正常的情况,原以为是个很简单的活,因为我们的视图解析器使用的是freemarker,直接就可以变更替换,结果发现打开页面替换不了,不生效,才想起来freemarker是动态替换,必须是通过他解析返回的页面才能替换,此路不通,否则就要重构页面所有请求,完全无法接受。
        此时想到了方案二,通过maven进行静态资源替换,网上随便一搜很多文章,并且还有直接pom文件的配置,相信读到这篇文章的你肯定肯定已经见过了很多吧,发现然并卵,哈哈,现在告诉你实际有效的解决方案是什么!
        1.首先第一步POM进行配置!

            注意红框内重点

           1.maven-war-plugin这个jar包是针对pom文件内的properties内定义的变量进行替换

           2.一定要在delimiter内指定静态资源内使用的需要替换的标识符!

           3.include内是指需要替换的静态资源类型和目录

                **/*.jsp指的是替换src/main/webapp这个目录下所有的jsp文件,可以多种类型
           4.静态资源内的在需要刷新的页面任意js或者是css的url最后加上一个参数

                例:xxx.js?r=${xxxxxx},调用mvn package打包命令后效果如图4

maven 打包 cmd Maven 打包war不打包静态_maven

图1 

maven 打包 cmd Maven 打包war不打包静态_maven 打包 cmd_02

图2 

maven 打包 cmd Maven 打包war不打包静态_加载_03

 图3

maven 打包 cmd Maven 打包war不打包静态_静态资源_04

图4