隠し内部サイトのシステムを使用しています。パスを非表示にするために、HttpContext.RewritePathを使用しています。新しい名前を生成する写真をアップロードするシステムもあり、写真は変更されません。そのような写真にはクライアントキャッシュを使用したいと思います。
ユーザーに表示されるサイトのURL:/files/autoupload/1/13/wufkjqr31028.jpg.[ps].jpg
サーバー上のHttpContext.RewritePathの後のURL:/_sites/_shared/files/autoupload/1/13/wufkjqr31028.jpg.[ps].jpg
「/_sites/ _shared/files」フォルダにクライアントキャッシュ設定のあるweb.configがあります。
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>
</system.webServer>
「/files/autoupload/1/13/wufkjqr31028.jpg.[ps].jpg」URLが要求された場合、この設定はまったく適用されません。応答としてCache-Controlヘッダーはありません。
完全なURL「/_sites/_shared/files/autoupload/1/13/wufkjqr31028.jpg.[ps].jpg」が要求され、HttpContext.RewritePathがそれをスキップした場合、キャッシュ設定は機能します。
しかし、同じweb.configを使用してルートに「/ files」フォルダーを作成すると、キャッシュ設定は元の「/files/autoupload/1/13/wufkjqr31028.jpg.[ps].jpg」URLで機能し始めます。
したがって、web.configクライアントのキャッシュ設定は、最初に要求されたディスクパスによってのみ適用され、書き換えられたパスによっては適用されません。
ルートにフォルダを作成する以外にこれを修正する方法はありますか?