Как я могу убедиться, что статический контент кэшируется на стороне клиента?

Как я могу убедиться, что статический контент (изображения, CSS, javascript) кэшируется? Какой подход лучше?


person Arian    schedule 14.03.2012    source источник


Ответы (2)


Рекомендую вам пройти это руководство, чтобы понять, как в целом происходит кеширование в Интернете (HTTP).

Проще говоря, веб-серверу необходимо генерировать соответствующие заголовки HTTP при отправке контента клиенту, чтобы контролировать кеширование на стороне клиента. В среде ASP.NET/IIS это IIS, который обычно обрабатывает содержимое статических файлов, и поэтому вы должны соответствующим образом настроить IIS для управления кэшированием статических файлов в соответствии с вашими потребностями. См. Ссылки ниже для получения дополнительной информации о настройке кэширования IIS для статического содержимого:

http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
Как настроить кеш статического содержимого для каждой папки и расширения в IIS7?

РЕДАКТИРОВАТЬ: как вы спрашивали о наилучшем подходе, наиболее распространенный подход, который я вижу сейчас, - это версия статического содержимого (например, добавление некоторого идентификатора версии в конец файла или URL-адреса). После изменения версии вы можете рассматривать его как неизменяемый, а затем генерировать заголовки кеша для его кеширования на бесконечное время. В приложении ASP.NET вы, вероятно, можете добавить версию сборки (или версию продукта) к каждому URL-адресу статического содержимого. Таким образом, вы аннулируете кеш для каждой сборки (или каждого выпуска продукта).

person VinayC    schedule 14.03.2012
comment
@VinayC Как насчет проблемы с Как кэшировать файлы js и css приложения ASP.NET MVC, обслуживаемого на IIS? Заранее спасибо... - person Jack; 30.12.2016
comment
@ClintEastwood, пока вы обслуживаете статические файлы, отправка заголовков кеша с использованием конфигурации IIS будет работать. Чтобы обрабатывать обновления статического содержимого, вы должны использовать URL-адреса с поддержкой версий (например, /image/a.png?v=2), чтобы браузер запрашивал снова всякий раз, когда вы меняете версию. - person VinayC; 05.01.2017
comment
@VinayC Почему бы не попробовать выложить пример кода вместо того, чтобы просто писать комментарии ??? - person Jack; 05.01.2017

Вы также можете использовать манифест автономных веб-приложений HTML5. Он позволяет вам настроить манифест, в котором вы определяете, какие файлы будут кэшироваться локально.

Это приятный, понятный для понимания широко реализованный способ избежать необходимости изучать IIS и HTML кеширование.

http://www.w3schools.com/html/html5_app_cache.asp

(вы должны полностью прочитать об этом)

person gaijintendo    schedule 13.11.2014