web-dev-qa-db-ja.com

すべてのブラウザデータを消去した後にキャッシュページが表示されるのはなぜですか

Chromeからすべての閲覧データを消去し、Ctrl + F5を押しましたが、キャッシュされたホームページが表示されたままです。テストホームページに新しいページが正しく表示されます。新しいページがアップロードされたことは間違いありません。 Ctrl + F5を押した後、IE11でも同じ問題が発生します。 meta tags を使用したくないのは、明らかな(帯域幅、遅いユーザーブラウジングなど)理由のためです。

他に試すことができるものはありますか?

これはWindowsサーバーです。

私のラップトップでは新しいページが正しく表示されていますが、試した他のいくつかのマシンでは更新されていません。

更新

私のISPは昨夜問題を解決したようですが、再発しました。バックアップから古いファイルを復元したかのようです。

以下は、Firefox HTPPヘッダーからの部分的なレポートです。

HTTP/1.1 200 OK Cache-Control:private、no-cache、no-store、must-revalidate Content-Encoding:gzip Content-Type:text/html; charset = utf-8 Date:Fri、21 Mar 2014 15:54:33 GMT Expires:Sat、01 Jan 2000 00:00:00 GMT Pragma:no-cache x-content-type-options:nosniff X-XSS-Protection :0 X-FB-Debug:nmuGzYXWYFP/OJF3oT7UTEXBADzlWnIE176a9iLFCjk = X-Firefox-Spdy:3

さらにレポートが必要かどうかを教えてください。

1
ron tornambe

たぶんあなた(またはあなたのISP)がキャッシングプロキシを使用していますか? http://mybypassproxy.com/ などの外部プロキシからサイトをロードしてみてください。

Webサイトが(プロキシまたはブラウザによって)リロードされるようにするには、一意のアドレスを使用できます。 PHPユーザーは、他の場合に必要になることがあるため、このメソッドを知っています。

URLに?uniquedataを追加します(例:http://Host/index.htm?time=20140318220630)。これにより、プロキシやブラウザには、そのページの一致するレコードがなくなります。
または、すでに?がある場合URLに、&で追加します
http://Host/index.htm?data=alreadyhere&uniquetimestamp=20140318220630

2
ExploWare

サーバーに新しいバージョンがあることがわかっている場合でも、ブラウザでリソースが更新されない理由はほとんどありません。

1つは@ExploWareによって言及されましたが、さらにオプションがあります。

  • サーバーのキャッシュ制御が未来に設定されている場合、ブラウザまたはその他のキャッシュのリソースは、期限が切れるまで更新されません。
  • 有効期限ヘッダーについても同様です。
  • リクエストの有効性を検証するetagはありません
  • リクエストの有効性を検証する最終変更はありません
  • 求めているリソースが動的コンテンツである場合、標準モードではキャッシュできませんが、プラグインまたは特別なアプリケーションによってキャッシュされる可能性があります。これらのアプリケーションが正常に動作していないか、キャッシュを更新していない場合、応答は間違っています。
  • 一部のCDNまたは平衡型サーバーでは、要求の情報が時間どおりに同期されない場合があるため、古い情報が残っているサーバーに送信されます。

今、思い浮かぶことのないものがもっとあると思います。

2
PatomaS

これは私に数回起こりました:

  • 正しいサーバー(localhostまたはテストサーバーではない)を見ていることを確認してください。
  • 必ず正しいサーバー/フォルダー(テストサーバーではない)にアップロードしてください。
  • サーバーが.htaccess経由でリダイレクトしていないことを確認してください
  • コンピュータがホストファイルでリダイレクトしていないことを確認してください。
  • ページがVarnishまたはその他のWebキャッシュシステムによってキャッシュされていないことを確認してください。

ポイント1と2には数時間かかりました。ポイント5には数日かかりました。

ライブサイトまたはテストサイトを見ているかどうかを示す視覚的な信号をページに表示することは、常に良いことです。また、自分のサーバーを保守していない場合は、キャッシングプログラムを実行しているかどうかを確認する担当者に相談してください。

1
Hoytman

私にとっては久しぶりですが、ポーリングアルゴリズムによっては、一部のWebサーバーがHTML Webページやその他のリソースの変更にすぐに気付かないことがあります。例として、Apacheはこれを行いますが、ポーリングはかなり短いと思います。ある時点で最大5分でした。 Webサーバーで何らかの形式のキャッシュが有効になっていることもあります。

また:

Chromeでは、ctrl+shift+delを試してください。これにより、明確な閲覧データダイアログが表示されます。そこから、Cached images and filesをクリックします。 (残りはクリック解除します。)これにより、すべてのキャッシュファイルが削除されます。かなりまれですが、時々これをしなければならないことがあります。

1
closetnoc