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>