有時遇到改了css或js,但卻沒反應,除了天兵改錯隻以外,太多是因為browser自己cache住了,有幾個做法可避免
References
- ap server處理
apache可用mod_expires
//1.載入mod_expires.so # vi /etc/httpd/conf/httpd.conf LoadModule expires_module modules/mod_expires.so #拿掉註解 //2.config #vi your_app_path/.htaccess ExpiresActive on ExpiresByType application/javascript "access plus 1 months" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/css "access plus 1 months"
- 利用uri不同,迫使Browser reload
以前是自己在get參數列加版本or日期
<link type="text/css" href="aaa.css?v=20130526"/ >
看到有人利用file更新日期搭RewriteEngine~ 真是太棒了~
- html載入
<link type="text/css" href="/css/main.<?php echo filemtime('/path/to/css/main.css'); ?>.css" / > //會產出 /css/main.1237440708.css
- .htaccess設定
RewriteEngine On RewriteRule ^(css|js)/(.*)\.[0-9]+\.(.*)$ /$1/$2.$3 [L]
- html載入
- 利用HTML5的cache manifest
就隨意改一下 cache manifest的內容
Browser就會自己檢查有沒有新的版本...
References