【问题标题】:Compress Filter + MVC + Yahoo YSlow压缩过滤器 + MVC + Yahoo YSlow
【发布时间】:2009-06-03 02:53:03
【问题描述】:

我一直在使用雅虎的 YSLOW 来尝试让我的页面在 AgentX 上运行得更快

我正在使用下面的压缩过滤器。当我通过 Visual Studio 运行该站点时,YSLOW 说所有文件都已压缩,当我查看实时站点时,我得到一个 A,它得到一个 E,并说我的文件需要压缩。谁能解释一下?

    public class CompressFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpRequestBase request = filterContext.HttpContext.Request;

        string acceptEncoding = request.Headers["Accept-Encoding"];

        if (string.IsNullOrEmpty(acceptEncoding)) return;

        acceptEncoding = acceptEncoding.ToUpperInvariant();

        HttpResponseBase response = filterContext.HttpContext.Response;

        if (acceptEncoding.Contains("GZIP"))
        {
            response.AppendHeader("Content-encoding", "gzip");
            response.Filter = new GZipStream(response.Filter,
                CompressionMode.Compress);
        }
        else if (acceptEncoding.Contains("DEFLATE"))
        {
            response.AppendHeader("Content-encoding", "deflate");
            response.Filter = new DeflateStream(response.Filter, 
                CompressionMode.Compress);
        }
    }
}

【问题讨论】:

  • 您可以使用 Firebug 或 Fiddler 并将请求和响应数据发布到您的实时网页吗?
  • 好的,这实际上在家里可以正常工作,但不能正常工作。在工作中,我们通过网络 marshall 代理,所以也许这就是原因。无论如何,我很高兴结束这个问题。感谢收看。

标签: asp.net asp.net-mvc gzip


【解决方案1】:

我在我的网站上使用相同的机制:

http://www.avantprime.com/articles/view-article/7/compress-httpresponse-for-your-controller-actions-using-attributes

我建议使用 fiddler 来查看您来自实时站点的响应是否实际被压缩,然后您可以确定 YSlow 或您的代码是否有问题。

我建议你也运行 google pagespeed http://code.google.com/speed/page-speed/。这与 YSlow 的工作相同,但由谷歌制作。某些事情的不同算法。

大部落

【讨论】:

    【解决方案2】:

    您是否在 IIS 6 上运行生产?也许这会有所帮助。 ASP.NET MVC compression options in IIS6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多