2011-07-27 3 views
2

私の質問は、1つのポストに関連しているを使用して画像非キャッシュはいくつかの時間前に議論してください:私はその意志アニメーションを作成するためにJavaScriptを使用 ... how to clear or replace a cached imageてmod_headersまたはmod_expiresを

は私がやっているものを紹介しましょう5分ごとに更新されます。 image-1-no-cache.png?d = 131415135135

私は更新を確実にするためにこれを使用しています。これは、画像の名前にタイムスタンプを追加するトリックです。名前の違いがない場合、画像はキャッシュに保存され、ブラウザは変更されたことを認識しないため、ブラウザは何も更新しません。 問題は、画像が連続して保存されていることです。私はJavaScriptを介して参照を失うと、私はそれらを削除する方法を知らない。数時間後、キャッシュには画像がいっぱいで、ウェブサイトは多くのRAMを使用しています。

今私がやっていることは、画像に有効期限を設定することです。私はモジュールしてmod_headersとmod_expiresをを有効にして、私は違うことをしようと私の.htaccessファイルを変更:

<Files ~ ".*no-cache\.png?=*"> 
    Header set Cache-control "no-cache" 
</Files> 

または

<FilesMatch ".*no-cache.png.*"> 
    ExpiresActive On  
    ExpiresDefault A300 
</FilesMatch> 

何も機能しません。考え方は、ファイルを作ることです。-no-cache.png?=。キャッシュ不可。 なぜ良い結果が得られないのですか?私は何が欠けていますか?

これは初めての試みですが、私はかなり混乱しています。どんな助けもありがとう。ありがとうございました ! Yun

答えて

0

画像に?somethingを追加すると、画像にが追加されないため、はキャッシュ不可になります。 新しい URLを作成します.のキャッシュ可能なファイルはで、他のURLには影響しません。他のすべてのURLはキャッシュに残ります。?versions

<Files ~ "no-cache\.png"> 
    Header set Cache-control "max-age=10, must-revalidate" 
</Files> 

これは、ファイル名にno-cache.pngどこでも(.*が必要とされていない)を持つすべてのファイルにヘッダを追加するようにApacheを教えてくれます。 AFAIKはURLではなくファイルシステムの名前と一致するので、クエリ文字列はそこには存在しません)。

ヘッダーには、最大10秒間キャッシュし、使用するたびにサーバーの最新性をチェックします。

0

これは機能しません。

設定を使用すると、ブラウザは10秒後にイメージを再検証(=更新)する必要がありますが、これは起こっていません。

"ヘッダーセットキャッシュコントロール"を「ストアしない」に設定することをお勧めします。 JavaScript画像配列で参照されているすべての画像を持っている場合は、キャッシュを使用する必要はありません。今のところ、これは私が見つけた最良の選択肢です。

ありがとうございます。 ゆん

関連する問題