ima*_*c84 98 compression iis asp.net-mvc gzip asp.net-mvc-3
有谁知道如何在MVC 3中启用gzip压缩?我正在使用IIS7.
Google Chrome Audit的结果:
- 启用gzip压缩(4)
- 使用gzip压缩以下资源可以将传输大小减少大约三分之二(~92.23KB):
- / mydomain /可以节省~1.53KB
- jquery-1.4.4.min.js可以节省~51.35KB
- Cufon.js可以节省~11.89KB
- Futura.js可以节省~27.46KB
Rob*_*Rob 139
您可以通过web.config文件配置压缩,如下所示:
<system.webServer>
    <urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
您可以在iis.net/ConfigReference上找到此配置元素的文档.这相当于:
注意:( 正如评论中所指出的)您需要确保安装了Http Dynamic Compression,否则设置doDynamicCompression="true"将不起作用.最快的方法是:
optionalfeatures(这是进入"打开或关闭Windows功能"窗口的最快方法)Net*_*oke 31
如果您愿意,可以在代码中执行此操作.我会创建一个基本控制器,每个控件都继承自己,并使用下面的属性来装饰它.
public class CompressAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
        if (string.IsNullOrEmpty(encodingsAccepted)) return;
        encodingsAccepted = encodingsAccepted.ToLowerInvariant();
        var response = filterContext.HttpContext.Response;
        if (encodingsAccepted.Contains("deflate"))
        {
            response.AppendHeader("Content-encoding", "deflate");
            response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
        }
        else if (encodingsAccepted.Contains("gzip"))
        {
            response.AppendHeader("Content-encoding", "gzip");
            response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
        }
    }
}
| 归档时间: | 
 | 
| 查看次数: | 50809 次 | 
| 最近记录: |