http истекает заголовки в asp.net с web.config - PullRequest
24 голосов
/ 28 августа 2011

Я пытаюсь заставить YSlow дать мне A в разделе «Добавить заголовок Expires», установив файл web.config.

Я искал вокруг, и это то, что я положил в зависимости от того, что там:

<staticContent>
    <clientCache httpExpires="15.00:00:00" cacheControlMode="UseExpires"/>
    </staticContent>
</system.webServer>

Вот что я вижу в Firebug:

Response Headers

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Sun, 28 Aug 2011 13:54:50 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Type: image/jpeg
Content-Length: 24255
Connection: Close


Request Headersview source
Host    localhost:50715
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
Accept  image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
Referer http://localhost:50715/MySite/SiteHome.html
Pragma  no-cache
Cache-Control   no-cache

Однако, когда я смотрю на это в Firefox, Ислоу все еще дает F на этом, даже после Crtl-F5

Чего мне не хватает?

Спасибо.

Ответы [ 3 ]

31 голосов
/ 30 июня 2014

С .NET Daily , я успешно применил это к PHP-сайту на IIS.Он устанавливает максимальный возраст 30 дней, вместо того, чтобы указывать явную дату.

Добавьте это в ваш web.config файл:

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

Эта конфигурация удовлетворяет обеим параметрам PageSpeed ​​"Использовать кеширование браузера "и YSlow" Добавить заголовки Expires ".YSlow требует значения больше 7 дней.PageSpeed ​​требует от 30 дней до 1 года.

16 голосов
/ 28 августа 2011

С документация clientCache

Значением атрибута httpExpires должны быть полностью отформатированные дата и время, соответствующие спецификации в RFC 1123. Например: Fri,01 января 2010 12:00:00 GMT

Итак, если вы хотите использовать заголовки http expires для статического контента, установите его следующим образом:

<staticContent>
  <clientCache cacheControlMode="UseExpires" httpExpires="Sun, 1 Jan 2017 00:00:00 UTC" />
</staticContent>

Обновление (к комментариям выше): Это, скорее всего, все еще не будет работать на встроенном сервере VS.Я не уверен, поддерживает ли он заголовки expires вообще.AFAIK, это настройка IIS.

2 голосов
/ 28 августа 2011

Я считаю, что рекомендуется добавлять срок действия на статический контент, а не на страницы ASPX.Убедитесь, что вы проверяете заголовки запроса для статического содержимого, такого как изображения, а не для файла ASPX.

Проверьте:

http://developer.yahoo.com/performance/rules.html

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