Как я могу убедиться, что статический контент (изображения, CSS, javascript) кэшируется? Какой подход лучше?
Как я могу убедиться, что статический контент кэшируется на стороне клиента?
Ответы (2)
Рекомендую вам пройти это руководство, чтобы понять, как в целом происходит кеширование в Интернете (HTTP).
Проще говоря, веб-серверу необходимо генерировать соответствующие заголовки HTTP при отправке контента клиенту, чтобы контролировать кеширование на стороне клиента. В среде ASP.NET/IIS это IIS, который обычно обрабатывает содержимое статических файлов, и поэтому вы должны соответствующим образом настроить IIS для управления кэшированием статических файлов в соответствии с вашими потребностями. См. Ссылки ниже для получения дополнительной информации о настройке кэширования IIS для статического содержимого:
http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
Как настроить кеш статического содержимого для каждой папки и расширения в IIS7?
РЕДАКТИРОВАТЬ: как вы спрашивали о наилучшем подходе, наиболее распространенный подход, который я вижу сейчас, - это версия статического содержимого (например, добавление некоторого идентификатора версии в конец файла или URL-адреса). После изменения версии вы можете рассматривать его как неизменяемый, а затем генерировать заголовки кеша для его кеширования на бесконечное время. В приложении ASP.NET вы, вероятно, можете добавить версию сборки (или версию продукта) к каждому URL-адресу статического содержимого. Таким образом, вы аннулируете кеш для каждой сборки (или каждого выпуска продукта).
Вы также можете использовать манифест автономных веб-приложений HTML5. Он позволяет вам настроить манифест, в котором вы определяете, какие файлы будут кэшироваться локально.
Это приятный, понятный для понимания широко реализованный способ избежать необходимости изучать IIS
и HTML
кеширование.
http://www.w3schools.com/html/html5_app_cache.asp
(вы должны полностью прочитать об этом)