路徑後面加js的版本號。這樣是業界比較成熟的作法。(重點)javascript
網上查詢資料,縱觀你們的解決思路總結以下:css
一、修改js的文件名。我以爲這樣很麻煩。形成版本系統的維護困難。不建議。除非是徹底ftp。不過每次發佈都修改文件名稱。的確形成維護的時候很茫然,接手的人看到文件名稱變化,會比較難維護html
二、路徑後面加時間戳或者隨機數的方式。java
通常都是在html模版中使用一個時間戳或者隨機數函數生成一個值。程序員
<script type="text/javascript" src="{{passport_host}}js/common.js?t={{date("Y-m-d")}}" ></script> 今天和明天的值不一樣了,從新請求服務器。瀏覽器
<script type="text/javascript" src="{{passport_host}}js/common.js?t={{time()}}" ></script> 使用時間戳,每刷新一次html,值都不一樣。隨機數也是同樣的緩存
不推薦使用這種方式。服務器
由於這樣的方式致使的問題是,每次刷新html,時間戳都是變化的,url就老是惟一的,因而瀏覽器老是去請求服務端獲取js文件,不會使用瀏覽器本地的緩存。佔用帶寬,影響速度函數
三、路徑後面加js的版本號。這樣是業界比較成熟的作法。網站
關鍵是這個版本號,怎麼作版本? 難道真的歸入版本系統裏面去?不是的。我忽然靈感來,想到一種程序員本身控制的辦法。
本身主動加時間,若是本次發佈,修改了哪幾個js文件。那麼就在後面加上一個時間點:年月日
若是一天會發布屢次對js文件的修改,那麼程序員還要精確點。年月日時分秒便可。
以下:
<script type="text/javascript" src="/js/common.js?time=20150518" ></script>
我去看了一下淘寶,發現也是這樣一種方式額,不知道對不對?
以下:
15年8月12日補充:
公司有好幾千萬註冊會員,因而第三方應用使用咱們網站會員賬號實如今第三方網站登陸,須要設計oauth2.0受權的平臺,因而須要參考微博的oauth體制。
無心中發現他們的css也是使用年月日來控制
進一步思考:
這種加時間方法是可行。。不是系統生成的時間,不是全部js文件都加。
是否是能夠進一步考慮一種辦法,用程序來進行開關呢?
本身勾選。若是這個文件修改了。那麼就設置爲更新。模版中判斷,就根據這個開關,把時間戳自動打上去?
不過這樣子以爲不必。由於還沒到那麼重大。其實初期,徹底能夠程序手動把日期打上去便可了。
總結思路:
js文件的內容修改了,能夠加個t參數代表一下日期,用這個日期來做爲版本號,看到日期也能知道是哪天發佈的。
沒有修改js文件根本就不用修改日期。
實踐:
<script type="text/javascript" src="{{passport_host}}js/common.js?t=20150622" ></script>
若是下一次修改了這個js文件,那麼發佈的時候,就修改日期
<script type="text/javascript" src="{{passport_host}}js/common.js?t=20150628" ></script>
沒有修改的js文件,保留原來的值不動便可。