Как работают кэш asp.net MVC и Firefox? - PullRequest
0 голосов
/ 03 августа 2010

Я использую следующий код для записи заголовка кэша на * .png запросах: response.Buffer = false; response.BufferOutput = false;

        // Emit content type and encoding based on the file extension and 
        // whether the response is compressed
        response.ContentType = MimeMapping.GetMimeMapping(physicalFilePath);
        if (mode != ResponseCompressionType.None) 
            response.AppendHeader("Content-Encoding", mode.ToString().ToLower());
        response.AppendHeader("Content-Length", count.ToString());

        // Emit proper cache headers that will cache the response in browser's 
        // cache for the default cache duration
        response.Cache.SetCacheability(HttpCacheability.Public);
        response.Cache.AppendCacheExtension("must-revalidate, proxy-revalidate");
        response.Cache.SetMaxAge(DEFAULT_CACHE_DURATION);
        response.Cache.SetExpires(DateTime.Now.Add(DEFAULT_CACHE_DURATION));
        response.Cache.SetLastModified(lastModified);

Но каждый раз, когда я обновляю страницу, содержащую URL-адрес PNG, она снова публикуется на веб-сервере. Похоже, что заголовок кеша не работает, и, что еще хуже, кеш браузера тоже не работает.

Я использую asp.net mvc. Может кто-нибудь указать мне правильное направление? Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 августа 2010
0 голосов
/ 03 августа 2010

A POST никогда не будет кэшироваться любым браузером или сервером. Если браузер выдает запрос POST, сервер выполнит его. Вы не можете кэшировать результаты. Единственный способ не POST - это не выдавать POST.

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