首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在IIS7上使用MVC3时,如何启用gzip压缩?

在IIS7上使用MVC3时,如何启用gzip压缩?
EN

Stack Overflow用户
提问于 2011-08-09 15:05:14
回答 3查看 54.1K关注 0票数 102

有人知道如何在MVC3中启用gzip压缩吗?我使用的是IIS7。

Google Chrome Audit的结果:

  1. 启用gzip压缩(4)
  2. 使用gzip压缩以下资源可将其传输大小减少约三分之二(约92.23KB):
  3. /mydomain/可节省约1.53KB
  4. jquery-1.4.4.min.js可节省约51.35KB
  5. Cufon.js可节省约11.89KB

<代码>H113Futura.js可节省约27.46KB<代码>H214<代码>G215

EN

回答 3

Stack Overflow用户

发布于 2011-08-09 15:44:28

您可以通过web.config文件配置压缩,如下所示:

代码语言:javascript
复制
<system.webServer>
    <urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>

您可以在iis.net/ConfigReference上找到此配置元素的文档。这相当于:

通过左侧的树视图打开互联网信息服务(IIS Manager)

  • Navigating ),直到您到达您希望应用的虚拟目录,以便右侧窗格的标题成为右侧窗格中"IIS“下的所述虚拟压缩”modify

  • Selecting“的名称

  • 勾选两个选项并选择最右侧"Actions”下的“modify

  • Selecting”。

注意:(如评论中所指出的)您需要确保安装了Http Dynamic Compression,否则设置doDynamicCompression="true"将不起任何作用。完成此操作的最快方法是:

Windows >键入Windows (这是打开或关闭功能的最快方法,可通过window)

  1. Navigate转到互联网信息服务>万维网服务>性能功能在"Windows功能“treeview
  2. Ensure”动态内容压缩“中勾选
  3. 单击”确定“并等待,等待optionalfeatures安装component
票数 143
EN

Stack Overflow用户

发布于 2012-06-30 05:35:19

如果你更愿意这样做,你可以用代码来做。我会做一个每个控件都继承的基本控制器,并用下面的属性来装饰它。

代码语言:javascript
复制
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);
        }
    }
}
票数 32
EN

Stack Overflow用户

发布于 2011-08-09 15:36:25

在服务器级别启用/禁用压缩。请参阅IIS管理控制台中的iis压缩模块。

以下是来自微软网站的the instructions for IIS

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6992524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档