maven-replacer-plugin 静态资源版本号解决方案(css/js等)
2018-11-09 11:26
746 查看
本文介绍如何使用 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.结语
到此本文就结束了,关注公众号查看更多推送!!!
相关文章推荐
- maven-replacer-plugin 静态资源打包方案js css
- 使用yuicompressor-maven-plugin插件压缩JS和CSS静态资源
- 解决myeclipse maven jetty启动后无法修改静态资源js css文件
- web.xml中配置访问资源URL<url-pattern>/</url-pattern>时无法访问.html、.jsp、.js、.css等静态资源时的解决方案
- 使用Maven + Jetty时,如何不锁定js css 静态资源
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号
- web.xml中配置访问资源URL<url-pattern>/</url-pattern>时无法访问.html、.jsp、.js、.css等静态资源时的解决方案
- 用maven搭建springmvc项目时,jsp页面无法加载js或者css等静态资源
- 使用Maven + Jetty时,如何不锁定js css 静态资源
- npm scrpit/node实现静态资源(js/css)复制重命名(版本号)、压缩tar.gz、上传至服务器
- 前端静态资源版本与缓存(通过gulp在js和css后面添加版本号)
- web.xml中配置访问资源URL<url-pattern>/</url-pattern>时无法访问.html、.jsp、.js、.css等静态资源时的解决方案
- 一个自动化添加 js css 的版本号和压缩js css的 maven 插件 jcv-maven-plugin
- springMVC访问静态资源——js、css、img等资源访问不到
- nginx做反向代理但是图片,css,js等静态资源加载出错
- spring MVC 跳转js css图片等静态资源无法加载问题
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径
- Gulp:静态资源(css,js)版本控制