maven-replacer-plugin 靜態資源版本號解決方案(css/js等)
阿新 • • 發佈:2018-12-21
本文介紹如何使用 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.結語
到此本文就結束了,關注公眾號檢視更多推送!!!