給靜態文件加隨機數或時間戳防止瀏覽器文件緩存

今天被同事指出一個bug,就是在靜態文件中加時間戳是這樣:

<link rel="stylesheet" href="../css/main.css?v="+new Date().getTime()>

這種寫法當時也是在網上隨便搜索下找到的,自己也沒驗證,後面自己在瀏覽器上檢驗了下果真有問題,就是後面的時間戳沒有獲取到,主要是由於獲取時間戳的js代碼執行,當然不執行,由於js代碼在link中沒有執行環境,不是在script標籤內。所以後面改成如下方式:

時間戳:

<script>
    document.write('<link href="../css/main.css?v=' + new Date().getTime() + '" rel="stylesheet" type="text/css"/>');
</script>

隨機數:

<script>
    document.write('<link href="../css/main.css?v=' + Math.random() + '" rel="stylesheet" type="text/css"/>');
</script>

引入js文件也同樣如此

時間戳:

<script>
    document.write('<script src="./index.js?' + new Date().getTime() + '"><\/script\>');
</script>

隨機數:

<script>
    document.write('<script src="./index.js?' + Math.random() + '"><\/script\>');
</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章