Câu trả lời:
Bạn có thể kích hoạt nén GZIP hoàn toàn trong Web.config
tệp của mình . Điều này đặc biệt hữu ích nếu bạn đang sử dụng lưu trữ chia sẻ và không thể định cấu hình trực tiếp IIS hoặc bạn muốn cấu hình của mình thực hiện giữa tất cả các môi trường bạn nhắm mục tiêu.
<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>
Để kiểm tra xem tính năng nén có hoạt động hay không, hãy sử dụng các công cụ dành cho nhà phát triển trong Chrome hoặc Fireorms cho Firefox và đảm bảo tiêu đề phản hồi HTTP được đặt:
Content-Encoding: gzip
Lưu ý rằng tiêu đề này sẽ không xuất hiện nếu mã phản hồi là 304 (Không được sửa đổi). Nếu đó là trường hợp, hãy làm mới hoàn toàn (giữ shift hoặc điều khiển trong khi bạn nhấn nút refresh) và kiểm tra lại.
.js
không. Ngoài ra, đã thử thêm application/x-javascript
. Sử dụng cùng với tomcat, do đó loại bỏ directory
tham số.
Bạn sẽ cần bật tính năng này trong bảng điều khiển Tính năng của Windows:
Gzip toàn cầu trong HTTPModule
Nếu bạn không có quyền truy cập vào phiên bản IIS cuối cùng (lưu trữ được chia sẻ ...), bạn có thể tạo một HTTPModule thêm mã này vào mọi sự kiện 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;
Kiểm tra
Kudos, không có giải pháp được thực hiện mà không cần thử nghiệm. Tôi thích sử dụng plugin " Liveheaders " của Firefox, nó hiển thị tất cả thông tin về mọi thông báo http giữa trình duyệt và máy chủ, bao gồm nén, kích thước tệp (mà bạn có thể so sánh với kích thước tệp trên máy chủ).
Tôi chỉ cần thêm tính năng này trong các tính năng của windows như Charlie đã đề cập. Đối với những người không thể tìm thấy nó trên cửa sổ 10 hoặc máy chủ 2012+, hãy tìm nó như dưới đây. Tôi vật lộn một chút
Nếu bạn cũng đang cố gắng gzip các trang động (như aspx) và nó không hoạt động, có lẽ vì tùy chọn này không được bật (bạn cần cài đặt mô-đun nén nội dung động bằng tính năng của Windows):
http://support.esri.com/en/ledgeledridease/Techarticles/detail/38616
Một cách dễ dàng khác để kiểm tra mà không cần cài đặt bất cứ thứ gì, nó cũng không phụ thuộc vào phiên bản IIS. Dán url của bạn vào liên kết này - Kiểm tra SEO
Để thêm vào web.config: http://www.iis.net/configreference/system.webserver/httpcompression
Hãy thử Firefox với các addon Fireorms được cài đặt. Tôi đang sử dụng nó; công cụ tuyệt vời cho nhà phát triển web.
Tôi cũng đã bật tính năng nén Gzip trong IIS7 bằng web.config.