Подтвердить что ты не робот

Кэш файлы CSS и JS

Когда я обновляю свой сайт менее чем за 2-3 минуты, Firebug показывает эти приятные запросы:

1. /core.css          304 Not modified
2. /core.js           304 Not modified
3. /background.jpg    304 Not modified

НО, когда я обновляюсь через > 3 минуты, я получаю:

1. /core.css          200 OK
2. /core.js           200 OK
3. /background.jpg    304 Not modified

Почему мои файлы CSS и JS загружаются снова, а изображения не являются?

Я использую ASP.NET MVC 3, я НЕ использую [OutputCache], а в моей папке /Content (где все css, js и img файлы живут во вложенных папках) у меня есть этот Web.config:

<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>

который устанавливает HTTP-заголовок Cache-Control: max-age=86400 ТОЛЬКО. Таким образом, в основном CSS, JS и образы обрабатываются одинаково, но почему-то CSS и JS не кэшируются в течение более длительного периода... почему?

4b9b3361

Ответ 1

Надеюсь, это поможет: http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

Элемент <clientCache> элемента <staticContent> указывает связанные с кешем заголовки HTTP, которые IIS 7 и более поздние версии отправляют веб-клиентам, которые контролируют, как веб-клиенты и прокси-серверы будут кэшировать содержимое, которое возвращает IIS 7 и более поздние версии...

Ответ 2

Это происходит с IIS или с веб-сервером Visual Studio? в течение некоторого времени воспринимал это поведение при разработке (используя веб-сервер VS), но при публикации его в IIS этого больше не происходит.

Ответ 3

Может ли это быть ошибка в Firefox, описанная здесь?

Вы можете проверить это, открыв ту же страницу в другом браузере и проверить, что загрузится, используя Fiddler или какой-либо другой инструмент.