Конфигурация кэша ASP.NET - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь понять конфигурацию кеша ниже:

<!--Configures expiration for files in CMS/VPP-->
<staticFile expirationTime="12:0:0" />

<!--Configures expiration in IIS-->
<system.webServer>
   <!--Configures client headers for static files from IIS-->
   <staticContent>
       <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00"></clientCache>
   </staticContent>
   <!--Configures output and kernel caching for ALL images (both CMS and IIS)-->
   <caching>
      <profiles>
        <add extension=".gif" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
      </profiles>
   </caching>
</system.webServer>
</configuration>

Таким образом, статические файлы будут кэшироваться в течение 1 дня, когда cacheControlMaxAge = "1,00: 00: 00". Но я не понимаю, почему у нас есть:

<staticFile expirationTime="12:0:0" />

А также типы MIME имеют срок действия 1 минуту:

<caching>
      <profiles>
        <add extension=".gif" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
      </profiles>
   </caching>

Значит ли это, что весь статический контент кэшируется на 1 день или это зависит от настроек? Как и любые файлы, кроме типов MIME, 1 день, а типы MIME 1 минута.

1 Ответ

0 голосов
/ 17 января 2019

<staticFile> нестандартно. Похоже, это элемент конфигурации для EPiServer.Web.StaticFileHandler . <system.webServer> настраивает IIS. Какая конфигурация используется, зависит от того, какой модуль обрабатывает запрос.

Документация на https://docs.microsoft.com довольно хорошая: https://docs.microsoft.com/en-us/iis/configuration/system.webserver/staticcontent/clientcache

Кроме того, я бы сказал, что нет лучшего способа узнать, что он делает / какую конфигурацию имеет значение, чем попробовать. В большинстве браузеров вы можете нажать F12 и открыть инструменты разработчика . Сделайте запрос к статическим файлам и посмотрите на вкладку Сеть. Прочитать заголовки ответа, такие как Cache-Control, Last-Modified и т. Д.

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