縹緲止盈
2019-07-29 11:01:29
啟用IIS7 gzip如何啟用IIS7來gzip靜態(tài)文件,如js和css,如何在發(fā)送到客戶端之前測試IIS7是否真正gziping它們?
3 回答

波斯汪
TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊
組態(tài)
您可以在Web.config
文件中完全啟用GZIP壓縮。如果您在共享主機(jī)上并且無法直接配置IIS,或者您希望配置在您定位的所有環(huán)境之間傳輸,則此功能特別有用。
<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中的開發(fā)人員工具,并確保設(shè)置了HTTP響應(yīng)標(biāo)頭:
Content-Encoding: gzip
請注意,如果響應(yīng)代碼為304(未修改),則此標(biāo)頭將不存在。如果是這種情況,請執(zhí)行完全刷新(按住刷新按鈕時按住切換或控制)并再次檢查。

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗 獲得超5個贊
HttpModule中的全局Gzip
如果您無權(quán)訪問最終的IIS實例(共享主機(jī)...),則可以創(chuàng)建一個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;
測試
榮譽(yù),沒有測試就沒有解決方案。我喜歡使用Firefox插件“ Liveheaders ”,它顯示瀏覽器和服務(wù)器之間每條http消息的所有信息,包括壓縮,文件大小(可以與服務(wù)器上的文件大小進(jìn)行比較)。
添加回答
舉報
0/150
提交
取消