Атрибут IIS7 cacheControlMaxAge не работает

В IIS 7.5 я установил cacheControlMaxAge равным одному году.

<location path="Content/Images">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
      </staticContent>
    </system.webServer>
  </location>

Согласно этому руководству: Настройка Expires и Cache-Control: заголовки max-age для статические ресурсы в ASP.NET

Однако инструмент Google PageSpeed ​​по-прежнему сообщает, что файлы не кэшируются:

The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources:
* https://local.example.com/Content/Images/image1.png (expiration not specified)
(etc)

Почему написано "срок действия не указан"?

Все веб-приложение обслуживается через https, это фактор?


person JK.    schedule 29.09.2012    source источник
comment
Вы проверили заголовки http для image1.png? Вы можете сделать это в инструментах разработчика вашего браузера (F12 в Chrome/FF/IE) на вкладке сети. Или вы можете использовать Fiddler. Все современные браузеры кэшируют элементы через https, если установлен максимальный возраст.   -  person Giscard Biamby    schedule 29.09.2012
comment
Заголовки http говорят Cache-Control: public, но не упоминают об истечении срока действия, как будет называться заголовок срока действия?   -  person JK.    schedule 29.09.2012
comment
Решено: добавление атрибутов кэширования в location path="Content" вместо location path="Content/Images" устранило проблему.   -  person JK.    schedule 29.09.2012
comment
Не могли бы вы опубликовать ответ как ответ, если вы решили проблему?   -  person Giles Roberts    schedule 29.07.2013


Ответы (2)


Я решил это, изменив указанный путь с Content/Images на просто Content

<location path="Content">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlCustom="public" 
                     cacheControlMode="UseMaxAge" 
                     cacheControlMaxAge="365.00:00:00" />
      </staticContent>
    </system.webServer>
  </location>

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

person JK.    schedule 18.03.2014

Я обнаружил, что Google PageSpeed ​​в некоторых случаях требуется некоторое время, чтобы «догнать» последние внесенные вами изменения. Убедитесь, что вы полностью обновили страницу и нажали кнопку обновления в PageSpeed. В противном случае использование Firebug в Firefox всегда дает точные результаты на вкладке сети. Щелкните значок плюса рядом с файлом и просмотрите заголовки ответа.

person Giles Roberts    schedule 29.07.2013
comment
Я обнаружил, что добавление нерелевантной строки запроса в конец страницы заставляет Google PageSpeed ​​получать последнюю версию. т.е. example.com/testpage.htm?x=1 - person EddieC; 27.02.2015