Jawaban:
Anda dapat mengaktifkan kompresi GZIP sepenuhnya di Web.config
file Anda . Ini sangat berguna jika Anda menggunakan hosting bersama dan tidak dapat mengonfigurasi IIS secara langsung, atau Anda ingin konfigurasi Anda dijalankan di antara semua lingkungan yang Anda targetkan.
<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>
Untuk menguji apakah kompresi berfungsi atau tidak, gunakan alat pengembang di Chrome atau Firebug untuk Firefox dan pastikan tajuk respons HTTP diatur:
Content-Encoding: gzip
Perhatikan bahwa tajuk ini tidak akan ada jika kode responsnya 304 (Tidak Dimodifikasi). Jika demikian, lakukan penyegaran penuh (tahan shift atau kontrol saat Anda menekan tombol penyegaran) dan periksa lagi.
.js
tidak. Juga, coba tambahkan application/x-javascript
. Menggunakan bersama-sama dengan kucing jantan, maka dihapus directory
parameternya.
Anda harus mengaktifkan fitur di panel kontrol Fitur Windows:
Gzip Global dalam HttpModule
Jika Anda tidak memiliki akses ke instance IIS akhir (shared hosting ...) Anda dapat membuat HttpModule yang menambahkan kode ini ke setiap acara 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;
Pengujian
Kudos, tidak ada solusi yang dilakukan tanpa pengujian. Saya suka menggunakan plugin Firefox " Liveheaders " yang menunjukkan semua informasi tentang setiap pesan http antara browser dan server, termasuk kompresi, ukuran file (yang dapat Anda bandingkan dengan ukuran file di server).
Saya hanya perlu menambahkan fitur di fitur windows seperti yang disebutkan Charlie. Bagi orang yang tidak dapat menemukannya di windows 10 atau server 2012+ menemukannya seperti di bawah ini. Saya sedikit kesulitan
Jika Anda juga mencoba untuk gzip halaman dinamis (seperti aspx) dan itu tidak berfungsi, itu mungkin karena opsi tidak diaktifkan (Anda perlu menginstal modul Kompresi Konten Dinamis menggunakan Fitur Windows):
http://support.esri.com/en/knowledgebase/techarticles/detail/38616
Cara mudah lain untuk menguji tanpa menginstal apa pun, juga tidak tergantung pada versi IIS. Rekatkan url Anda ke tautan ini - Pemeriksaan SEO
Untuk menambahkan ke web.config: http://www.iis.net/configreference/system.webserver/httpcompression
Coba Firefox dengan add-on Firebug terinstal. Saya menggunakannya; alat hebat untuk pengembang web.
Saya telah mengaktifkan kompresi Gzip juga di IIS7 saya menggunakan web.config.