Как настроить кэш статического содержимого для каждой папки и расширения в IIS7? - PullRequest
139 голосов
/ 03 февраля 2010

Я хотел бы настроить правила в IIS7 для кэширования статического содержимого на моем веб-сайте ASP.NET.

Я видел эти статьи, в которых подробно описывается, как это сделать с помощью элемента <clientCache /> в * 1004.*:

Кэш клиента <clientCache> (IIS.NET)
Добавление заголовка Expires или Cache Control для статического содержимого в IIS (переполнение стека)

Однако этот параметр применяется глобально ко всему статическому содержимому.Есть ли способ сделать это только для определенных каталогов или расширений?

Например, у меня может быть две директории, которые требуют отдельных настроек кэша:

/static/images
/content/pdfs

Можно ли настроить правила отправки заголовков кэша (max-age, expires и т. Д.) На основе расширений и путей к папкам?

Обратите внимание, ядолжен быть в состоянии сделать это через web.config, потому что у меня нет доступа к консоли IIS.

Ответы [ 3 ]

212 голосов
/ 04 февраля 2010

Вы можете установить определенные заголовки кэша для всей папки в любом корне 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>

Мне не известен встроенный механизм для нацеливания на определенные типы файлов.

66 голосов
/ 27 января 2011

Вы можете сделать это отдельно для каждого файла. Используйте атрибут path, чтобы включить имя файла

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="YourFileNameHere.xml">
        <system.webServer>
            <staticContent>
                <clientCache cacheControlMode="DisableCache" />
            </staticContent>
        </system.webServer>
    </location>
</configuration>
0 голосов
/ 29 ноября 2017

У меня была такая же проблема. Для меня проблема заключалась в том, как настроить ограничение кэша для изображений. И я наткнулся на этот сайт, который дал некоторое представление о процедуре, как решить эту проблему. Надеюсь, это будет полезно для ты тоже Ссылка: [https://varvy.com/pagespeed/cache-control.html]

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