IIS7を使用していますが、次の設定を既に行っています。しかし、Firefoxを実行すると、「履歴を記憶する」が設定されていても画像がキャッシュされないようです。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
ただし、Firebugを使用する場合、Firefoxは画像とCSSをキャッシュしないことを示しています。
public,max-age=604800
Content-Type text/css
Content-Encoding gzip
Last-Modified Mon, 27 Jun 2011 03:53:22 GMT
Accept-Ranges bytes
Etag "507968c27d34cc1:0"
Vary Accept-Encoding
Server Microsoft-IIS/7.5
X-Powered-By ASP.NET
Date Mon, 27 Jun 2011 13:06:41 GMT
Content-Length 5067
Request Headersview source
Host www.xx.com
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept text/css,*/*;q=0.1
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://www.xx.com/
Cookie __utma=62996397.135679654.1309106351.1309159743.1309164158.8; __utmz=62996397.1309106351.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=62996397
CSSファイルのリクエストURIは何ですか? Firefoxは、URIにクエリ文字列が含まれる場合(つまり、?の後にパラメーターが続く)、結果をキャッシュしません。
HTTP仕様によると、サーバーが明示的に許可しない限り、ブラウザはクエリ文字列を含むリクエストからのレスポンスをキャッシュすべきではありません。残念ながら、FirefoxとIEはこのルールに準拠していません。 IEはクエリ文字列に関係なくキャッシュしますが、Firefoxはキャッシュ制御ヘッダーに関係なくキャッシュしません。
Etagヘッダーを削除します
Cache-Controlヘッダーを使用して大きなmax-age値を設定します
Expiresヘッダーを遠い将来の日付に設定します
IISを使用してこれを行う方法はわかりませんが、上記を行う場合、Firefoxは画像とキャッシュしたいその他のファイルをキャッシュする必要があります。
IISで静的コンテンツの圧縮を有効にしましたか?
どうやら(この質問に従って: https://stackoverflow.com/questions/6420995/iis-7-x-static-compression-not-frequently-hit )IIS mayまれにしかアクセスされない場合、ファイルを圧縮しないことを決定します。私はこの点に関して何の問題も抱えていません-新しく作成されたファイルでさえもうまくいきました。
より大きなmax-age
値を使用します-30日以上(ただし、ファイルがキャッシュされるのを完全に防ぐためにキャッシュにそれほど影響を与えることはありませんが)。