Определенный клиентский кеш, похоже, игнорируется - PullRequest
6 голосов
/ 05 декабря 2011

Я не уверен, что делаю неправильно, но, несмотря на все, что я пытался, я не могу заставить клиентов кешировать мои статические ресурсы.

В моей сети.config, я добавил следующую запись:

  <staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
  </staticContent>

В соответствии с документацией, это должно отправить заголовок ответа в браузер клиента, чтобы он знал, что мы хотим сохранить статическое содержимое в кэше в течение 30 дней.

Если я использую fiddler, чтобы увидеть, что получает клиент, похоже, что мое дополнение web.config полностью игнорируется.

Ниже приведено то, что fiddler сообщает:

Cache-Control: no-cache
Date: Mon, 05 Dec 2011 14:09:44 GMT
Expires: -1
Pragma: no-cache
Vary: Accept-Encoding

У меня нет никаких заголовков в IIS, переопределяющих это, поэтому я не уверен, что мне не хватает.Любая помощь будет принята с благодарностью.

1 Ответ

6 голосов
/ 05 декабря 2011

Я взломал это, но это заняло некоторое время. Вы пытаетесь заставить 304 с сервера (без изменений). Это отличается с версиями IIS.

Лучше всего, если все статическое содержимое находится в одном каталоге. (например, content, чтобы у вас было /content/css /content/js etc)

Тогда вам просто нужно убедиться, что все в этом каталоге не истекает, скажем, 30 дней.

IIS7

Намного проще. Самый простой способ - добавить web.config в каталог содержимого, указанный выше. У этого web.config будет только директива expires:

<system.webServer>
    <staticContent>
        <clientCache
            cacheControlMaxAge="30.00:00:00" 
            cacheControlMode="UseMaxAge" />
    </staticContent>
</system.webServer>

IIS6

Вам нужно будет манипулировать метабазой. Это не XML в IIS6, следуйте инструкциям здесь: Команды метабазы ​​Iag6 ETags

Мы использовали как вышеприведенный, так и простой просмотр шоу огненных насекомых, проходящих через 304.

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