轉載自:https://www.cnblogs.com/mafengzi/p/10464910.html 假設有一個js文件(以jquery為例),在伺服器上的URL地址為:../js/jquery.js 。 當某天jquery版本更新了,用最新版的jquery文件覆蓋了原來舊版的jquery文件。 ...
轉載自:https://www.cnblogs.com/mafengzi/p/10464910.html
假設有一個js文件(以jquery為例),在伺服器上的URL地址為:../js/jquery.js 。
當某天jquery版本更新了,用最新版的jquery文件覆蓋了原來舊版的jquery文件。
這時,在打開引用了此js文件的網頁時,有可能引用的還是舊版,這是因為瀏覽器有緩存,它緩存了舊版的jquery文件。
瀏覽器緩存文件是以完整的URL來緩存的,也就是說,當瀏覽器遇到一個與之前完全一致的URL請求時,就有可能使用之前緩存下來的文件,而不是向伺服器去請求文件。當然,緩存是有時效的,超過了一定的時間後,緩存將會消失。
既然是以完整的URL來緩存文件的,那麼我們就可以使用不同的文件名來訪問更新後的文件。
一種解決方法是,將版本號寫在文件名里,比如,可將以上的jquery.js的文件名改為 jquery-3.3.0.js,其中,3.3.0就是jquery的版本號。在前端引用時,就這樣寫:
<script src="../js/jquery-3.3.0.js"></script>
當某天jquery的版本更新為3.3.1了,我們就將文件名修改為jquery-3.3.1。前端引用的代號同時修改為:
<script src="../js/jquery-3.3.1.js"></script>
另一種解決方法是,不修改文件名,而是將版本號放在URL的query參數里,比如這樣寫:
<script src="../js/jquery.js?ver=3.3.0"></script>
其中ver=3.3.0就是版本號。當jquery的版本號更新為3.3.1之後,就改寫為這樣:
<script src="../js/jquery.js?ver=3.3.1"></script>