2011-07-04 4 views
26

ほとんどの人のように、jsとcssファイルを使用するWebサービスがあります。私はjsとcssファイルのようなバージョン番号を追加する古いトリックを使用します。 ?v = 123で、プロダクションでサービスを更新するたびに変更されます。Chromeのキャッシングは気違いのブラウザのようです

これは、Chrome以外のすべてのブラウザで問題なく動作します。 Chromeはキャッシュされたバージョンよりもキャッシュされたバージョンを好むように思われるので、追加された変数は無視されるようです。場合によっては、キャッシュをリフレッシュ(cmd + r/ctrl + f5)するだけでは十分ではなかったので、新しいコンテンツを読み込むためにオプションに入り、キャッシュをクリアする必要がありました。

Chromeでこの問題が発生したことはありますか?もしそうなら、問題の解決はどうでしたか?

+2

タイトルを愛する;) – async

答えて

12

Chromeは、さまざまなクエリ文字列を含むリクエストを異なるリクエストとして確実に処理する必要があります。 のキャッシュ結果をstyle.css?v=124に使用しないでください。異なる動作が見られる場合は、http://new.crbug.com/にバグを報告し、バグIDをここに投稿してください。

つまり、ページが予想より長くキャッシュされているかどうかを確認します。ページ自体の新しいバージョンがダウンロードされなかった場合、依然として?v=123がHTMLが変更されていないと要求していました。ページに長持ちするキャッシュヘッダーを送信している場合、Chromeが予想よりも積極的にキャッシュしている可能性は確かです。それがあなたが見ている振る舞いであれば、http://crbug.com/8742に最新の情報を提供してください。

+0

確かに。ロードされたHTMLページのソース(ソースを表示)を確認し、クロム開発者ツールバーでどのリソースがリクエストされているかを確認します。私はそれがクロムバグだとは思っていませんが、積極的なキャッシングは厄介な「機能」かもしれません。 – ivy

+0

素晴らしい答えマイク!ページ自体が長いキャッシュを要求している可能性があるので、私が欲しいと思っていたヘッダーが返ってきたことは驚きではありません。私はそれを見て覚えていないので、それが私がやる最初のことです。再度、感謝します! –

+0

私の問題は、* expire/cache-controlヘッダーを設定していないことでした。間違いなく何かを試す前にこれらが設定されていることを確認する価値があります。 – FuriousFolder

1

私もこの経験がありました。

ログインしていないか、メンバーシップレベルで許可されていないコンテンツを表示しようとしている場合は、「このコンテンツを見るにはゴールドメンバーとしてログインする必要があります」などのコンテンツを表示するメンバーシップサイトを実行します。しかし、ユーザーがログインしていても、Google Chromeの積極的なキャッシュのため、ユーザーは「ログインする必要があります」と表示されます。しかし、Firefoxでは、それぞれが適切なコンテンツを表示する5つのレベルのメンバーシップのログインとログアウトをテストするので、うまく動作します。

Chromeのキャッシングに関する問題は、ユーザーがログインするたびにキャッシュをクリアすることで解決できますが、そのアプローチをとるのは本当に面倒です。

2

私はまた、あなたが両方のクローム+ Mozillaのキャッシュ自由に閲覧するためのユーザーはCtrl + Shiftキー+ Rをすることができます同じ経験

を持っていました。

関連する問題