背景
在搜尋引擎中搜尋索引鍵.htaccess 緩衝,你可以搜尋到很多關於設定網站檔案快取的教程,通過設定可以將css、js等不太經常更新的檔案快取在瀏覽器端,這樣訪客每次訪問你的網站的時候,瀏覽器就可以從瀏覽器的緩衝中擷取css、js等,而不必從你的伺服器讀取,這樣在一定程度上加快了網站的開啟速度,又可以節約一下你的伺服器流量。
問題
現在問題來了,.htaccess設定的css、js緩衝都有一個到期時間,如果在訪客的瀏覽器中已經緩衝了css、js,在這些css、js緩衝未到期之前,瀏覽器只會從緩衝中讀取css和js,如果你在伺服器上修改了css和js,那麼這些更改在回頭客的瀏覽器中是不會有變化的,除非回頭客按了Ctrl + F5重新整理了你的網站頁面或者手動清空了瀏覽器的緩衝。一個網站的訪客成千上萬,回頭客也會有不少,你不可能在更新css後讓每個訪客都重新整理一下緩衝吧,那麼這個問題你會怎麼處理呢?
方法一
更改css檔案名稱:其實解決這個問題很簡單,緩衝是通過檔案名稱標記緩衝的內容的。在你更新了網站的css檔案內容後,在更換一下css的檔案名稱就可以了。如原先html中的css調用語句如下:
1 |
<linkrel="stylesheet"href="style.css"type="text/css"media="screen"/> |
改一下css檔案名稱就可以了:
1 |
<linkrel="stylesheet"href="index.css"type="text/css"media="screen"/> |
另外一種更改css檔案名稱的方法是將版本號碼寫到檔案名稱中,如:
1 |
<linkrel="stylesheet"href="index.v2011.css"type="text/css"media="screen"/> |
css檔案更新後,改一下檔案名稱中的版本號碼即可:
1 |
<linkrel="stylesheet"href="index.v2012.css"type="text/css"media="screen"/> |
方法二
給css檔案加個版本號碼:其實每次修改css檔案後還要修改css的檔案名稱有點麻煩,那麼我們可以在載入css語句中加入個版本號碼(即css連結中?後面的內容)就可以了。如原先html中的css調用語句如下:
1 |
<linkrel="stylesheet"href="style.css?v=2011"type="text/css"media="screen"/> |
改一下css檔案的版本號碼改成2012就可以了:
1 |
<linkrel="stylesheet"href="style.css?v=2012"type="text/css"media="screen"/> |
需要注意的是,部分代理快取服務器不會緩衝網址中包含 "?" 的資源,所以方法二可能會導致你原先的緩衝功能失效,可以改用第一種方法。
總結
其實css檔案後面的問號起不到實際作用,僅能當作尾碼,如果用問號加參數的方法,可以添加版本號碼等資訊,同時可以重新整理一下瀏覽器端的緩衝。一個小小的細節,可以給我們帶來很大的方便。