2015-11-30 4 views
2

У меня есть эта папка содержимого для хранения js/images/css и т. Д., Которая не изменяется так часто. Таким образом, я добавил конфигурационный файл в этот каталог, который выглядит, как это -Web.Config - staticContent - конфигурации clientCache

<configuration> 
    <system.webServer> 
     <staticContent> 
      <!-- <clientCache cacheControlMode="UseExpires" httpExpires="Mon, 30 Nov 2015 20:45:45 GMT"/> --> 
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00"/> 
     </staticContent> 
    </system.webServer> 
</configuration>  

Когда я загрузить страницу в первый раз, я вижу эти заголовки ответа/запрос для запрошенной JS файла -

Response Headers 
    Accept-Ranges:bytes 
    Cache-Control:max-age=86400 
    Content-Encoding:gzip 
    Content-Length:1730 
    Content-Type:application/x-javascript 
    Date:Mon, 30 Nov 2015 12:14:31 GMT 
    ETag:"038394f8fd11:0" 
    Last-Modified:Mon, 26 Oct 2015 14:14:08 GMT 
    Server:Microsoft-IIS/7.5 
    Vary:Accept-Encoding 
    X-Powered-By:ASP.NET 
Request Headers 
    Accept:*/* 
    Accept-Encoding:gzip, deflate, sdch 
    Accept-Language:en-US,en;q=0.8 
    Cache-Control:no-cache 
    Connection:keep-alive 
    Host:dev.admin.ccmportal.williamslea.com 
    Pragma:no-cache 
    Referer:http://dev.admin.ccmportal.williamslea.com/ 
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 

Два вопроса -

  1. Когда я повторно загрузить страницу с помощью клавиши F5, я вижу те же заголовки ответа с длины содержимого 1730. Почему содержимое перезагружается, даже если я установил , который будет кэшироваться в течение 1 дня?
  2. Что делает Cache-Control: no-cache означает в заголовке запроса?

Спасибо!

ответ

1
  1. Content-Length всегда будет показывать длину содержимого, даже если содержимое вытаскивается из кеша.
  2. Cache-Control: no-cache сообщает браузеру, что ДОЛЖЕН пересылать запрос на исходный сервер, даже если у него есть кешированная копия того, что запрашивается.

Content-Length спецификации: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

Cache-Control Спецификация: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

Так выглядит конфигурация clientCache правильно работает, однако он также выглядит, как вы в браузере не используется кэш в соответствии с Cache-Control: no-cache

У вас отключен кеш в ваших инструментах dev или что-то подобное?

+0

Привет, Спасибо за ваш ответ. Я использую Chrome, и когда я смотрю настройки в инструментах разработки - вкладка «Элементы», я вижу, что кэширование не отключено. Итак, в моем понимании должно происходить кэширование. Нужно ли мне внести некоторые изменения в IIS, обслуживающие этот запрос? – iniki

+0

Ваш сервер будет отвечать правильными заголовками, см. 'Cache-Control: max-age = 86400', который сообщает клиентам о кешировании ответа в течение 24 часов. В заголовках ответов нет ничего, что должно было бы предотвратить кеширование. – timothyclifford

Смежные вопросы