Chrome не кэширует изображения/js/css - программирование
Подтвердить что ты не робот

Chrome не кэширует изображения/js/css

Когда Chrome загружает мой сайт, он проверяет сервер на наличие обновленных версий файлов, прежде чем он их покажет. (Images/Javascript/CSS) Он получает 304 с сервера, потому что я никогда не редактирую внешний javascript, css или изображения.

Я хочу, чтобы он отображал изображения, даже не проверяя сервер.

Вот заголовки:

Connection:keep-alive    
Date:Tue, 03 Aug 2010 21:39:32 GMT    
ETag:"2792c73-b1-48cd0909d96ed"    
Expires:Thu, 02 Sep 2010 21:39:32 GMT    
Server:Apache/Nginx/Varnish

Как я могу заставить сервер не проверять сервер?

4b9b3361

Ответ 1

Как выглядят заголовки ваших запросов?

Chrome установит max-age: 0 в заголовке запроса Cache-Control если вы нажмете Enter в строке местоположения. Если вы посещаете свою страницу с помощью гиперссылки, она должна использовать кеш, как и ожидалось.

Ответ 2

Что-то, что меня достало, было... У меня был "отключить кеш" в инструментах разработчика. Наведите указатель мыши.

Ответ 3

Ничего себе! Я столкнулся с той же проблемой в течение довольно долгого времени.

Я расскажу вам, почему вы столкнулись с этой проблемой. Ваши заголовки в порядке. Вы получаете 304 из-за того, как вы пытаетесь обновить страницу. Там в основном 3 способа -

  • Нажмите enter в поле адреса. Вы увидите, что chrome сначала считывает файл из кеша и вообще не идет на сервер.

  • Нажмите f5, это подтвердит, что файл устарел (возможно, именно так вы обновляетесь)

  • Нажмите Ctrl + f5, это безусловная перезагрузка всех статических ресурсов.

Итак, в основном - вы должны нажать клавишу возврата в адресной строке. Дайте мне знать, если это сработает.

Ответ 5

Если вы хотите, чтобы Chrome кэшировал ваши файлы JS/CSS, серверу необходимо установить заголовок "Cache-Control". Он должен выглядеть так:

Cache-Control: max-age = 86400 (если вы хотите кэшировать ресурсы в течение дня).

Ответ 6

Я считаю, что вы ищете

Cache-Control: immutable