ASP.NET の gzip 圧縮により CSS が破損するのはなぜですか?
-
09-06-2019 - |
質問
現在開発中の ASP.NET Web フォーム アプリケーション (3.5 SP1) があり、パイプから送られる HTML と CSS の gzip を有効にしようとしています。使っています この実装 (そして、Application_BeginRequest にフックする他のいくつかを試しました)、ページが使用する外部 CSS ファイルが破損しているようですが、断続的に...ページを更新すると突然すべてのスタイルが消え、しばらくそのままのままになります。突然また仕事を始めます。
IE7 と FF3 の両方でこの動作が発生します。Web 開発者ツールバーを使用して CSS を表示すると、不安定な結果が返されます。キャッシュ制御ヘッダーは「プライベート」として送信されますが、それが要因であるかどうかを理解するのに十分な知識がありません。
また、これは ASP.NET 開発サーバー上で実行されます。IIS なら大丈夫かもしれませんが、XP で開発しているので IIS5 になるでしょう。
解決
破損するのはCSSファイルだけでしょうか?JS ファイル (またはその他の静的テキスト ファイル) は問題なく送信されますか?
また、CSS ファイルを直接参照した場合でも、同じ動作を再現できますか?
次の方法を使用して、Windows 2003 サーバーの IIS でのみ圧縮を有効にしました。
- IIS → Web サイト → プロパティ → サービス タブ、両方のチェックボックスをオンにします
- IIS→Webサービス拡張機能→右クリック、新規追加
Name Http Compression Required Files %systemroot%\system32\inetsrv\gzip.dll
- IIS → 最上位ノードを右クリックし、インターネット インフォメーション サービスにチェックを入れます メタベースの直接編集を有効にする
- バックアップと編集
%systemroot%\system32\inetsrv\MetaBase.xml
- 探す
Location ="/LM/W3SVC/Filters/Compression/gzip"
- 追加
png
,css
,js
およびその他の静的ファイル拡張子HcFileExtensions
- 追加
aspx
およびその他の実行可能拡張子HcScriptFileExtensions
- 保存
- 追加
- 探す
- IIS を再起動します (実行
iisreset
)
Windows 2003/2008 サーバーを使用している場合は、そのアプローチを試すことができます。
他のヒント
IIS 6 または IIS 7 に展開する場合は、組み込みの IIS 圧縮を使用してください。私たちは本番サイトで HTML、CSS、JavaScript をエラーなく圧縮するためにこれを使用しています。また、圧縮バージョンもサーバー上にキャッシュされるため、圧縮ヒットは 1 回だけ発生します。