最近在寫網頁應用突然發現改好上傳的檔案在瀏覽器端並未顯示新的變更,檢查網頁上的檔案確實是新的,問題研判是在httpd的快取,我找了幾個解決方法,可以從二個方向下手:
1.在public_html目錄下有一個.htaccess檔案,加入
<FilesMatch ".(php|html|htm|js|css)$">
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>
幾個同學測試的結果是上面的處置就可以了。
2.從檔案本身的檔頭
從html檔案本身的檔頭處理,在head裏加上:
<meta http-equiv="expires" content="Sun, 01 Jan 2014 00:00:00 GMT"/>
<meta http-equiv="pragma" content="no-cache" />
若是php檔:
<?php
header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
?>
3.透過httpd的.htaccess檔設定mod_rewrite