1. ホーム
  2. iis

[解決済み] IIS7でフォルダや拡張子ごとに静的コンテンツキャッシュを設定する方法は?

2022-05-30 18:41:43

質問

ASP.NET ウェブサイトの静的コンテンツ キャッシュのために、IIS7 でルールを設定したいと思います。

私はこれらの記事を見ました。 <clientCache /> 要素で web.config :

クライアントキャッシュ <clientCache> (IIS.NET)

IIS で静的コンテンツに Expires または Cache Control ヘッダーを追加する (Stack Overflow)

しかし、この設定は、すべての静的コンテンツにグローバルに適用されるようです。特定のディレクトリまたは拡張機能に対してのみ、これを行う方法はあるのでしょうか?

たとえば、私は、別々のキャッシュ設定を必要とする 2 つのディレクトリを持っているかもしれません。

/static/images

/content/pdfs

キャッシュヘッダを送信するルールを設定することは可能でしょうか( max-age , expires など) を拡張子やフォルダのパスに基づいて作成することはできますか?

注意してください、私はこれを 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>

特定のファイルタイプを対象とする組み込みのメカニズムについては、私は知りません。