Как настроить кеш статического содержимого для каждой папки и расширения в IIS7?
Я хотел бы настроить правила в IIS7 для статического кэширования содержимого на моем веб-сайте ASP.NET.
Я видел эти статьи, в которых подробно описывается, как это сделать, используя элемент <clientCache />
в web.config
:
Кэш клиента <clientCache>
(IIS.NET)
Добавить срок действия или конец кэша для статического содержимого в IIS (переполнение стека)
Однако этот параметр применяется во всем мире к статическому контенту. Есть ли способ сделать это только для определенных каталогов или расширений?
Например, у меня могут быть два каталога, которым нужны отдельные настройки кеша:
/static/images
/content/pdfs
Можно ли настроить правила для отправки заголовков кеша (max-age
, expires
и т.д.) на основе расширений и путей к папкам?
Обратите внимание: я должен сделать это через web.config
, потому что у меня нет доступа к консоли IIS.
Ответы
Ответ 1
Вы можете установить определенные кеш-заголовки для всей папки в корневом каталоге web.config
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Note the use of the 'location' tag to specify which
folder this applies to-->
<location path="images">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
</staticContent>
</system.webServer>
</location>
</configuration>
Или вы можете указать их в файле web.config
в папке содержимого:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
</staticContent>
</system.webServer>
</configuration>
Мне не известно о встроенном механизме для конкретных типов файлов.
Ответ 2
Вы можете сделать это для каждого файла. Используйте атрибут path для включения имени файла
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="YourFileNameHere.xml">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
</configuration>
Ответ 3
У меня была такая же проблема. Для меня проблема заключалась в том, как настроить ограничение кэша на изображения. И я наткнулся на этот сайт, который дал некоторые сведения о процедуре, как можно справиться с проблемой. Надеюсь, что это будет полезно для ты тоже
Ссылка: [https://varvy.com/pagespeed/cache-control.html]