ASP.NET Webサイトでの静的コンテンツキャッシュのためにIIS7でルールを設定したいと思います。
<clientCache />
のweb.config
要素を使用してそれを行う方法を詳しく説明しているこれらの記事を見てきました。
クライアントキャッシュ
<clientCache>
(IIS.NET)
IIS(スタックオーバーフロー)の静的コンテンツにExpiresまたはCache Control Headerを追加
ただし、この設定はすべての静的コンテンツにグローバルに適用されるようです。特定のディレクトリまたは拡張機能に対してのみこれを行う方法はありますか?
たとえば、個別のキャッシュ設定が必要な2つのディレクトリがある場合があります。
/static/images
/content/pdfs
拡張機能とフォルダーパスに基づいてキャッシュヘッダー(max-age
、expires
など)を送信するためのルールを設定することは可能ですか?
IISコンソールにアクセスできないため、web.config
を介してこれを実行できる必要があります。
ルートweb.config
のいずれかのフォルダー全体に特定のキャッシュヘッダーを設定できます。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Note the use of the 'location' tag to specify which
folder this applies to-->
<location path="images">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
</staticContent>
</system.webServer>
</location>
</configuration>
または、コンテンツフォルダーのweb.config
ファイルでこれらを指定できます。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
</staticContent>
</system.webServer>
</configuration>
特定の種類のファイルを対象とする組み込みのメカニズムを知りません。
ファイルごとに実行できます。パス属性を使用してファイル名を含める
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="YourFileNameHere.xml">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
</configuration>