為js和css文件自動添加版本號


web應用必然要面對緩存問題,無論前台后台都會涉足緩存。特別是對於前端而言,緩存利用的是否得當直接關系到應用的性能。

通常情況下,我們會傾向於使用緩存,因為緩存一方面可以減少網絡開銷,一方面可以減輕服務器的壓力。

但是有些時候緩存也會帶來一些比較詭異的問題,呵呵。關於緩存的文章應該不在少數,不再討論,本文的重點在於為js和css文件自動添加版本號。

這樣做的原因是:首先對於js和css類型的靜態文件設置了緩存機制,當文件被更新時,需要強迫瀏覽器下載修改后的新文件,也就是要更新緩存,而通過為js和css文件增加版本號這樣的方式就可以很好的解決這個問題。

本文是以php腳本為例,其它語言可參考

php腳本的作用是取文件的時間戳作為版本號,這里可以自行定義版本格式

 

View Code PHP

< ?php
/**
 * Add version to the file for cache problem
 * @param string $url to add version
 * @return string
 */
function autoVer($url){
    $ver = filemtime($_SERVER['DOCUMENT_ROOT'].$url);
    echo $url.'?v='.$ver;
}
?>

引用js和css等資源文件時,使用腳本

<link href="<?php autoVer('/path/file.css'); ?>" rel="stylesheet" type="text/css" >
</link>

最終客戶端展現的html頁面內容

<link href="/path/file.css?v=1297503090" rel="stylesheet" type="text/css" />

這里URI不是靜態,可能會造成某些瀏覽器不會進行緩存,可以采用偽靜態配合URL重寫來解決,關於偽靜態也比較簡單,這里就不贅述了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM