Фильтр сжатия + MVC + Yahoo YSlow - PullRequest
5 голосов
/ 03 июня 2009

Я использовал YSLOW от Yahoo, чтобы мои страницы работали быстрее на AgentX

Я использую приведенный ниже фильтр сжатия. Когда я запускаю сайт через визуальную студию, 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);
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Я использую тот же механизм на моем сайте:

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, но сделано в Google. Различные алгоритмы для некоторых вещей.

DaTribe

1 голос
/ 03 июня 2009

Работаете ли вы на IIS 6? Возможно, это может помочь. Параметры сжатия ASP.NET MVC в IIS6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...