2

私はstackoverflow addの両方ExpiresCache-Control それらの画像、css、jsなどを見ることができるので、同じことをしようとしています。この記事を試しました

web.config

<location path="Content">
    <system.webServer>
      <staticContent>

    <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" 
    cacheControlMaxAge="365.00:00:00" />

    <clientCache cacheControlMode="UseExpires" httpExpires="Mon, 01 May 2023 00:00:00 GMT" />

      </staticContent>
    </system.webServer>
</location>

コンテンツ フォルダー内の css ファイルにアクセスしようとすると、次のようになります。http://localhost:11111/Content/bootstrap.min.css

次のエラーが表示されます

エラー:

HTTP エラー 500.19 -

内部サーバー エラー ページの関連構成データが無効であるため、要求されたページにアクセスできません。

Module           CustomErrorModule
Notification     SendResponse
Handler          StaticFile
Error Code       0x8007000d

構成エラー 構成要素 'clientCache' は既に定義されています

私はclientCacheすでに定義されていることを知っていますが、私は懸念していて、応答ヘッダーで Cache-Control と Expires の両方を設定する方法を知りたいですか?

どんな助けでも素晴らしいでしょう。

アップデート:

@Vitaly Kulikovがコメントで回答して議論し、これこのExpires and Cache-Control投稿を使用して、IISではweb.configで両方を設定できるという結論に達したので、少なくとも画像の有効期限を設定するためにOutputCacheを使用する予定で、 0.9で動作しますミリ秒の遅延。希望は誰かを助けます。

4

1 に答える 1

3

仕様上、両方を同時に持つことはできません。しかし、それを行う理由はありません。それらのどれでも問題ありません。

仕様

Chrome のソースコードを調べると、ブラウザでのキャッシュにはいくつかの簡単なルールがあります

初め:

max-age ディレクティブは Expires よりも優先されるため、応答に max-age が含まれている場合、計算は次のようになります: freshness_lifetime = max_age_value

2番:

それ以外の場合、Expires が応答に存在する場合、計算は次のとおりです。 freshness_lifetime = expires_value - date_value

三番:

前の手順を実行せず、「キャッシュ制御」 != 「再検証が必要」である場合、ブラウザーにはもう 1 つのキャッシュ ルールがあります。リソースの最終更新日から経過した時間の 10% の間、リソースをキャッシュします。

それだけです。これ以上のルールはありません。

于 2016-03-16T06:18:35.767 に答える