0

ImageResizer.MVC nuget パッケージを MVC4 ソリューションに追加しましたが、素晴らしく動作します。

リリースに向けて最適化する際に、すべての画像に次のような Cache Control ヘッダーがあることに気付きました。

Accept-Ranges:bytes
Cache-Control:no-cache,private,max-age=86400
Date:Wed, 14 Aug 2013 12:23:42 GMT
ETag:"e8611769095ce1:0"
Last-Modified:Fri, 09 Aug 2013 13:00:23 GMT

Cache-Control ヘッダーには私の設定がありますが、その前に no-cache があります。

その結果、すべての画像に 304 を返すサーバーへの要求があります。

Visual Studio 開発サーバーでプロジェクトを実行すると、キャッシュが正しく機能します。

Image Resizer デバッグ ページは、ここにリンクされているように表示されImageResizer.Plugins.Basic.NoCache、プラグインについて言及されています。

プラグインは、ヘッダーにノーキャッシュを追加するのではなく、ImageResizer が「巧妙な」キャッシュを行わないことを意味すると想定しました。

ImageResizer.Plugins.Basic.NoCache「no-cache」の Cache-Control ヘッダーが強制されているということですか?


編集: web.config のキャッシュ設定は次のとおりです。

<caching enabled="true" enableKernelCache="true">
  <profiles>
    <add extension=".gif" location="Any" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
    <add extension=".png" location="Any" policy="CacheForTimePeriod" kernelCachePolicy="CacheUntilChange" duration="12:00:30" />
    <add extension=".jpg" location="Any" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
  </profiles>
</caching>

<staticContent>
  <clientCache cacheControlCustom="private" cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
4

1 に答える 1

2

NoCache は単なる非ディスク キャッシュ ファイル サーバーです。キャッシング ヘッダーの提供を妨げるものではありません。

これは通常、サーバー側のディスク キャッシュとすべての HTTP キャッシュ ヘッダーのサポートの両方を含む DiskCache に置き換えられます。無料の ClientCache プラグインを追加して、expires ヘッダーを提供することもできます。

于 2013-08-14T19:39:32.410 に答える