亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot2.0實現靜態資源版本控制詳解

2024-07-14 08:42:58
字體:
來源:轉載
供稿:網友

寫在最前面

猶記畢業第一年時,公司每次發布完成后,都會在一個群里通知【版本更新,各部門清理緩存,有問題及時反饋】之類的話。歸根結底就是資源緩存的問題,瀏覽器會將請求到的靜態資源,如JS、CSS等文件緩存到用戶本地,當用戶再次訪問時就不需要再次請求這些資源了,以此也是提升了用戶體驗。但是也正是因為這些資源緩存,導致客戶端的靜態文件往往不是當前最新版本。后來有同事增加了時間戳、隨機數等,確實這也解決了客戶端緩存的問題,但是卻又帶來了新的麻煩,導致每次訪問都要請求服務器,無形中增加了服務器的壓力。

那么有什么辦法可以讓客戶端當需要更新時才去請求,不需更新就不請求嗎?當然有,實現方式很多種,像前端實現,webjars實現等都可以,但是麻煩還是麻煩,太燒腦。介紹一種Spring自身提供的方式,也是我目前所應用的方式,ResourceUrlProvider。

ResourceUrlProvider的實現效果有兩種,大家可以在后文中看到。下面話不多說了,來一起看看詳細的介紹吧

第一種、MD5實現

首先在application.yml或者application.properties中增加配置文件

spring:  resources: chain:  strategy:  content:   enabled: true   paths: /**

其次,如果您恰巧和我一樣使用Thymeleaf作為模板引擎,則可以和我一樣使用@bean語法直接從模板訪問ResourceUrlProvider bean。

<script th:src="${@mvcResourceUrlProvider.getForLookupPath('/mods/admin/login.js')}"></script>

如果您使用的模板引擎無法直接訪問Spring bean,則可以將ResourceUrlProvider 添加到Spring中。使用ControllerAdvice,代碼如下:

@ControllerAdvicepublic class ControllerConfig { @Autowired ResourceUrlProvider resourceUrlProvider; @ModelAttribute("urls") public ResourceUrlProvider urls() {  return this.resourceUrlProvider; }}

然后在頁面上通過下述代碼引用:

<script th:src="${urls.getForLookupPath('/mods/admin/login.js')}"></script>

此方法應適用于支持方法調用的所有模板引擎。

下面我們來看看具體的實現效果吧,前臺訪問后html頁面顯示為:

<script src="/mods/admin/login-96d770c87905659930c9786eaa08d710.js"></script>

注意:如果你的js文件沒有修改,或者修改沒重啟,MD5的值可能不會改變,當你重啟服務后你會看到你修改過后的文件MD5也隨之改變了。

簡單看了下源代碼,MD5的計算是通過 ContentVersionStrategy 這個類實現的。此VersionStrategy實現根據資源的內容計算MD5哈希值,并將其附加到文件名后面,也就是你不改變內容MD5值是不會變的哦,一度讓我以為這種方法有BUG(?•ˇ?ˇ•?)。

第二種、版本號實現

同樣在application.yml或者application.properties中增加配置文件

spring:  resources: chain:  strategy:  fixed:   enabled: true   paths: /mods/admin/*.js   version: 20181128

后續操作同上,此時我們看下頁面顯示的效果:

<script src="/20181128/mods/admin/login.js"></script>

在文件路徑的最前面增加了版本號,當我們每次修改只需要更新版本號的設置,客戶端就會自動請求最新的數據了。

同樣的看了下此VersionStrategy的實現是FixedVersionStrategy類,來使固定版本字符串作為資源路徑的前綴。

總結

相比其他方式的靜態資源控制,這種方式是我目前發現最簡便的了,尤其是在SpringBoot項目中的使用。在這兩種方式中,我更傾向于方法一的MD5方式,可以讓我們不必太過于關注靜態資源問題。當然上述講的兩個實現類,在傳統SpringMVC項目中也是有的,所以傳統項目也是可以使用的,具體的使用方法大家可以研究研究。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩欧美在线| 日韩av不卡在线| 国产精品pans私拍| 久久亚洲综合国产精品99麻豆精品福利| 国产精品久久久久久久久久| 日韩大陆欧美高清视频区| 全亚洲最色的网站在线观看| 日韩成人av在线播放| 日韩欧美国产成人| 久久手机免费视频| 亚洲国产精品电影在线观看| 91久久久久久久久| 国产精品欧美风情| 欧美大胆a视频| 日韩av在线免费播放| 成人网在线免费观看| 亚洲影院污污.| 国内精品模特av私拍在线观看| 日本欧美一二三区| 日韩在线观看av| 亚洲电影免费观看高清完整版| 青青草精品毛片| 欧美激情久久久久久| 亚洲精品日韩激情在线电影| 亚洲国产精品女人久久久| 日韩美女免费线视频| 日韩小视频在线| 国产一区二区三区在线观看视频| 2021国产精品视频| 最近2019年中文视频免费在线观看| 久久久噜噜噜久噜久久| 国产精品自拍偷拍| 97成人精品视频在线观看| 69国产精品成人在线播放| 国产精品久久久久久超碰| 国产精品爱久久久久久久| 亚洲精品视频播放| 国产精品香蕉国产| 欧美激情亚洲精品| 狠狠躁18三区二区一区| 久久久中文字幕| 亚洲热线99精品视频| 久久久久一本一区二区青青蜜月| 伊人久久男人天堂| 丝袜一区二区三区| 亚洲欧美一区二区三区在线| 久久久欧美一区二区| 91精品久久久久久久久久入口| 久久久这里只有精品视频| 欧美理论片在线观看| 久久99精品久久久久久青青91| 亚洲在线视频观看| 精品久久久久久久久久久| 久久6精品影院| 久久影视电视剧免费网站| 亚洲男人天堂2024| 欧美精品日韩www.p站| 欧洲成人在线观看| 成人乱人伦精品视频在线观看| 亚洲午夜久久久久久久| 日韩精品在线视频观看| 国模精品一区二区三区色天香| 91色视频在线导航| y97精品国产97久久久久久| 日韩av影视综合网| 国产午夜精品全部视频播放| 91情侣偷在线精品国产| 一个人看的www欧美| 欧美成人黑人xx视频免费观看| 欧美亚洲成人xxx| 日韩欧美国产成人| xxxxx成人.com| 国产美女精品免费电影| 欧美情侣性视频| 欧美区二区三区| 一本大道久久加勒比香蕉| 欧美高跟鞋交xxxxxhd| 欧美丰满少妇xxxxx做受| 亚洲一区二区三区四区在线播放| 欧美一性一乱一交一视频| 日韩国产高清视频在线| 国产精品扒开腿做爽爽爽的视频| 国产欧美久久一区二区| 少妇精69xxtheporn| 国产精品夜色7777狼人| 国产精品男人的天堂| 亚洲精品欧美日韩| 久久人人爽人人爽人人片av高请| 久久久欧美一区二区| 国产精品久久久久77777| 亚洲性生活视频在线观看| 欧美大奶子在线| 欧美电影《睫毛膏》| 亚洲精品综合久久中文字幕| 国产精品jvid在线观看蜜臀| 日韩欧美成人精品| 国产欧美一区二区三区在线看| 欧美日韩一区二区免费视频| 亚洲国产精品高清久久久| 91精品视频观看| 日韩精品有码在线观看| 午夜精品理论片| 中文字幕久久亚洲| 成人性生交大片免费看小说| 成人免费网站在线看| 亚洲欧美激情另类校园| 在线视频国产日韩| 日韩精品视频观看| 97色伦亚洲国产| 日韩欧美国产一区二区| 一区二区三区www| 日本19禁啪啪免费观看www| 1769国内精品视频在线播放| 精品欧美激情精品一区| 中文字幕国产亚洲| 高清欧美一区二区三区| 视频在线一区二区| 成人黄色免费在线观看| 亚洲精品v欧美精品v日韩精品| 中文字幕日韩精品在线观看| 国产亚洲精品成人av久久ww| 久久人人爽人人爽人人片av高请| 国产精品国模在线| 欧美一级淫片丝袜脚交| 日韩精品www| 久久成人一区二区| 一本色道久久综合狠狠躁篇怎么玩| 欧美激情极品视频| 欧美一区二区大胆人体摄影专业网站| 欧美俄罗斯乱妇| 欧美电影免费观看网站| 久久久天堂国产精品女人| 在线观看亚洲视频| 国产亚洲在线播放| 亚洲区免费影片| 欧美一区二区三区艳史| 欧美最猛性xxxxx亚洲精品| 国产精品免费久久久| 九九视频这里只有精品| 国产精品视频色| 日韩av在线免费看| 欧美日韩美女视频| 国产精品丝袜久久久久久不卡| 国产精品极品在线| 两个人的视频www国产精品| 国产亚洲美女久久| 欧美性高潮床叫视频| 日韩免费中文字幕| 精品欧美国产一区二区三区| 欧美性理论片在线观看片免费| 精品视频9999| 韩剧1988免费观看全集| 国产亚洲精品久久久优势| 亚洲激情视频在线| 中文字幕亚洲精品| 日韩国产激情在线| 久久精品中文字幕免费mv| 欧美老女人xx| 国产欧美一区二区三区在线看| 在线亚洲男人天堂| 97香蕉超级碰碰久久免费软件| 欧美在线视频一二三| 狠狠色狠色综合曰曰| 97视频在线观看视频免费视频|