2016-01-13 10 views
5

Chromeはローカルにファイルをキャッシュすることに気付きました。私たちのサーバーにリクエストを送信して、新しいバージョンのjavascriptファイルがあるかどうかを確認することさえありません。 Googleは、キャッシュされたJSファイルに対するHTTPレスポンスヘッダのChromeはキャッシュの標準に違反していますか?

例:

Accept-Ranges:bytes 
Access-Control-Allow-Headers:Content-Type 
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS 
Access-Control-Allow-Origin:* 
Content-Encoding:gzip 
Content-Length:5479 
Content-Type:application/javascript 
Date:Tue, 12 Jan 2016 22:46:07 GMT 
ETag:"7d68e1ceb647d11:0" 
Last-Modified:Tue, 05 Jan 2016 12:44:25 GMT 
Server:Microsoft-IIS/8.5 
Vary:Accept-Encoding 
x-robots-tag:noindex 

それはChromeは、ファイルをキャッシュしていること有効ですか? Cache-controlヘッダーなどはありません。ファイルをローカルにキャッシュできることを宣言するものはありません。ETagとLast-Modifiedしかありません。


ところで

キャッシュされたファイルは、ファイル名にバージョンを追加することなく、を変更されているかどうかを確認するためにChromeを指示する方法(多分ヘッダー)はありますか? no-cacheを設定することはキャッシュに入れたいのでオプションではありませんが、私はETagとLast-Modifiedヘッダーを必要に応じて使いたいと思います。

+0

私は、メインの質問に答えていないよしかし、あなたはこれを知っているのですか? http://stackoverflow.com/a/7000899/704097 –

+0

関連性があります:http://stackoverflow.com/questions/8294034/chrome-browser-is-not-sending-if-modified-since-header-to- server –

+0

@Miquel、はい私はdevツールのオプションを知っています。しかし、私のユーザーがそれを使用してサイトのキャッシュ全体をクリアすることもできないようにすることもできません。 – gdoron

答えて

1

特にキャッシュ制御(セクション14.9) ディレクティブによって制約されない限り、キャッシュシステムは、常にそれがある場合、検証 せずにそれを戻すことが、キャッシュエントリとして(セクション13.8を参照)に成功応答 を格納することができます。新鮮なものであり、検証が成功した後にそれを返すかもしれない。

必ずmust-revalidate命令を使用してください。

必見-再検証指示が応答で存在しているキャッシュが を受け、それが最初 オリジンサーバでそれを再検証せずに、後続の要求に応答する 古くなった後、そのキャッシュエントリを使用してはなりません。

Source

+0

うーん...キャッシュがないと予想される直前にクォートを停止した理由を知りたいのですがレスポンスがキャッシュされる兆候がない場合のレスポンス。 "_キャッシュバリデーターも応答に関連する明示的な有効期限もない場合、キャッシュされるとは思われませんが、特定のキャッシュはこの期待に反するかもしれません_ – gdoron