5

こんにちは。

HttpContext.RewritePathリクエストとホストに応じて、リクエストを内部サイトフォルダーに送信するために使用しています。

問題: IIS によってキャッシュされ GZIP された静的ファイルの RewritePath を要求する要求を行うと、元の圧縮されていないファイル コンテンツとContent-Encoding: gzipヘッダーが返され、「コンテンツのデコードに失敗しました」というエラーが発生します。しかし、同じリクエストを完全なディレクトリ パスで行うと (その場合、RewritePath はコードでスキップされます)、gzip された正しいコンテンツがContent-Encoding: gzip.


例:
エラーの状況:
Request url: localhost/lib/ext_3.4.0/resources/css/ext-all.css
Request path is rewriteed using HttpContext.RewritePath to:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css

最初の応答は gzip されません - 通常の IIS の動作です。ctrl+F5 を押すと、「コンテンツのデコードに失敗しました」というエラーが表示されます。Fiddler2 を使用すると、応答コンテンツが gzip されておらず、Content-Encoding: gzipヘッダーが含まれていることがわかります。

エラーのない状況:
リクエスト url:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css
リクエスト パスは必要ないため、書き換えられません。

最初の応答は再度 gzip されません。ctrl+F5 を押すと、通常のファイル コンテンツが表示されます。Fiddler2 を使用すると、応答コンテンツが gzip され、サイズが 5 分の 1 になり、Content-Encoding: gzipヘッダーが含まれていることがわかります。


RewritePath は捨てられず、IIS gzip が必要です。彼らを友達にする方法はありますか?

4

0 に答える 0