2012-03-19 11 views
1

ここに問題があります。キャッシュの再検証をブラウザに指示する方法

私はETagを使用してブラウザのキャッシュを検証しています。しかし、問題は、私がwindow.location.pathnameを実行すると、キャッシュからページを取得する傾向があることです。しかし、私がページ上でF5を実行すると、再検証のためにサーバーに要求が送信されます。

window.location.pathnameを実行してもキャッシュを再検証したいと考えています。それとももっと良い方法がありますか?

ここに私のRequest and Responseヘッダーがあります。

Request URL:http://127.0.0.1:5555/monyog-license.html 
Request Method:GET 
Status Code:200 OK 
Request Headers 
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Cookie:SessionID=fe5b68c5c1f377a063462e59a67efb90; Username=admin; IsAdmin=1; HasServerEdit=1 
Host:127.0.0.1:5555 
Pragma:no-cache 
Referer:http://127.0.0.1:5555/monyog-login.html 
User-Agent:Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.630.0 Safari/534.16 
Response Headers 
Cache-Control:max-age=3600, must-revalidate 
Content-Encoding:gzip 
Content-Length:1401 
Content-type:text/html; charset=utf-8 
ETag:1331890257_3961 
Expires:Tue, 19 Mar 2013 07:34:04 GMT 
Last-Modified:Fri, 16 Mar 2012 09:30:57 GMT 

答えて

1

次のようなものはどうですか:window.location.pathname + '?' + (+(new Date))

1

Apacheで実行していますか?もしそうなら、.htaccessを使ってキャッシュを制御したいかもしれません。

# 1 YEAR 
<filesMatch "\.(html|htm|php|cgi|pl)$"> 
Header set Cache-Control "max-age=29030400, public" 
</filesMatch> 

# 1 WEEK 
<filesMatch "\.(html|htm|php|cgi|pl)$"> 
Header set Cache-Control "max-age=604800, public" 
</filesMatch> 

# 3 HOUR 
<filesMatch "\.(html|htm|php|cgi|pl)$"> 
Header set Cache-Control "max-age=10800" 
</filesMatch> 

# NEVER CACHE 
<filesMatch "\.(html|htm|php|cgi|pl)$"> 
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate" 
</filesMatch> 

ファイルタイプを行に追加することで、任意のファイルタイプを設定できます。各ファイルタイプが|で区切られていることを確認してください。上記の例のように。

幸運を祈る!

ベスト、

シンシア

関連する問題