• 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 看你这么可怜,再提示你一下:你重孙算1,父母为2,父母的父母为4,父母的父母的父母为8…… 2019-03-19
  • maven-replacer-plugin 静态资源版本号解决方案(css/js等)

    快乐彩开奖号码 www.752o.com 本文介绍如何使用 maven 的 com.google.code.maven-replacer-plugin 插件来自动添加版本号,防止浏览器缓存。


    目录

    • 1.解决方案
    • 2.原始文件和最终生成效果
    • 3.pom.xml 中插件添加
    • 4.html中 css/js 文件引用规则
    • 5.结语

    1.解决方案

    解决问题:
        防止浏览器缓存,修改静态文件(js/css)后无效,需要强刷。
    
    解决方案:
        使用 maven 的 com.google.code.maven-replacer-plugin 插件,
        在项目打包 package 时自动为静态文件追加 xxx.js?v=time 的后缀,
        从而解决浏览器修改后浏览器缓存问题,此插件只会在生成 war 包源码时生效,不需要修改任何代码。

    2.原始文件和最终生成效果

    原始文件:
    <script src="${resource!}/js/xxx/xxx.js"></script>
    
    打包后:
    <script src="${resource!}/js/xxx/xxx.js?v=20180316082543"></script>

    3.pom.xml 中插件添加

    
    <properties>
        <!-- maven.build.timestamp 默认时间戳格式 -->
        <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
    </properties>
    
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <!-- 使用缓存 -->
                <useCache>true</useCache>
            </configuration>
            <executions>
                <!-- 在打包之前执行,打包后包含已经执行后的文件 -->
                <execution>
                    <id>prepare-war</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>exploded</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.google.code.maven-replacer-plugin</groupId>
            <artifactId>replacer</artifactId>
            <version>1.5.3</version>
            <executions>
                <!-- 打包前进行替换 -->
                <execution>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>replace</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- 自动识别到项目target文件夹 -->
                <basedir>${build.directory}</basedir>
                <!-- 替换的文件所在目录规则 -->
                <includes>
                    <include>${build.finalName}/WEB-INF/views/*.html</include>
                    <include>${build.finalName}/WEB-INF/views/**/*.html</include>
                </includes>
                <replacements>
                    <!-- 更改规则,在css/js文件末尾追加?v=时间戳,反斜杠表示字符转义 -->
                    <replacement>
                        <token>\.css\"</token>
                        <value>.css?v=${maven.build.timestamp}\"</value>
                    </replacement>
                    <replacement>
                        <token>\.css\'</token>
                        <value>.css?v=${maven.build.timestamp}\'</value>
                    </replacement>
                    <replacement>
                        <token>\.js\"</token>
                        <value>.js?v=${maven.build.timestamp}\"</value>
                    </replacement>
                    <replacement>
                        <token>\.js\'</token>
                        <value>.js?v=${maven.build.timestamp}\'</value>
                    </replacement>
                </replacements>
            </configuration>
        </plugin>
    </plugins> 
    

    4.html中 css/js 文件引用规则

    文件引用结尾处,必须是pom.xml文件中添加的规则:

    <script src="${resource!}/js/xxx/xxx.js" type="text/javascript"></script>
    
    <link href="${resource!}/css/xxx/xxx.css" rel="stylesheet" type="text/css">

    5.结语

    到此本文就结束了,关注公众号查看更多推送?。?!


    关注我的公众号


    posted @ 2018-11-15 10:27 YClimb 阅读(...) 评论(...) 编辑 收藏
  • 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 看你这么可怜,再提示你一下:你重孙算1,父母为2,父母的父母为4,父母的父母的父母为8…… 2019-03-19
  • 北京pk10走势图彩图 拼搏在线彩票网 快乐十分在线开奖 西甲总进球数排名 电视剧彩票中奖号码 wnba比分直播 体彩6+1彩票开奖结果 双色球图表走势图开奖 重庆时时彩综合走势图 九号铺软件超级大乐透智慧 中彩网3d开机号 重庆时时彩一直跟34567 云网快乐8福利彩票 3d开奖 11选五任三复式 彩客网完场比分直播