啟用IIS7 gzip如何啟用IIS7來gzip靜態文件,如js和css,如何在發送到客戶端之前測試IIS7是否真正gziping它們?
3 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
組態
您可以在Web.config
文件中完全啟用GZIP壓縮。如果您在共享主機上并且無法直接配置IIS,或者您希望配置在您定位的所有環境之間傳輸,則此功能特別有用。
<system.webServer> <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/> <dynamicTypes> <add mimeType="text/*" enabled="true"/> <add mimeType="message/*" enabled="true"/> <add mimeType="application/javascript" enabled="true"/> <add mimeType="*/*" enabled="false"/> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true"/> <add mimeType="message/*" enabled="true"/> <add mimeType="application/javascript" enabled="true"/> <add mimeType="*/*" enabled="false"/> </staticTypes> </httpCompression> <urlCompression doStaticCompression="true" doDynamicCompression="true"/></system.webServer>
測試
要測試壓縮是否有效,請使用Chrome或Firebug for Firefox中的開發人員工具,并確保設置了HTTP響應標頭:
Content-Encoding: gzip
請注意,如果響應代碼為304(未修改),則此標頭將不存在。如果是這種情況,請執行完全刷新(按住刷新按鈕時按住切換或控制)并再次檢查。

翻閱古今
TA貢獻1780條經驗 獲得超5個贊
HttpModule中的全局Gzip
如果您無權訪問最終的IIS實例(共享主機...),則可以創建一個HttpModule,將此代碼添加到每個HttpApplication.Begin_Request事件中:
HttpContext context = HttpContext.Current;context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;
測試
榮譽,沒有測試就沒有解決方案。我喜歡使用Firefox插件“ Liveheaders ”,它顯示瀏覽器和服務器之間每條http消息的所有信息,包括壓縮,文件大?。梢耘c服務器上的文件大小進行比較)。
添加回答
舉報
0/150
提交
取消