Кэш файлы 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 не кэшируются в течение более длительного периода... почему?
Ответы
Ответ 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 или какой-либо другой инструмент.