Аудит Google Chrome на кэшировании

Если я выполняю аудит на своих сайтах с Google Chrome, я получаю это сообщение в разделе кэширования браузера Рычагов:

Следующие ресурсы пропускают истечение кэша. Ресурсы, которые не указывают истечение, не могут кэшироваться браузерами:

Список всех изображений следует. Я получаю подобное уведомление в кэшировании на прокси-сервере Рычагов:

Рассмотрите добавление "Управления Кэша: общедоступный" заголовок к следующим ресурсам:

Кроме изображений, я также получаю уведомление о HTML, CSS и файлы JavaScript:

Следующие ресурсы являются явно некэшируемыми. Считайте создание их кэшируемым если возможный:

Его забавное, потому что я упорно работал для кэширования всего статического содержания (за исключением изображений, где я просто оставил настройки по умолчанию Apache). Firefox действительно хранит все эти объекты в кэше.

Есть ли что-нибудь, что я должен улучшить в своих HTTP-заголовках?


Вот полный набор заголовка некоторых объектов, как загружено после удаления браузера Скрытое. Изображения используют настройки по умолчанию, которые я действительно не проверял прежде, остальные должны быть cachéd в течение трех часов. Я могу установить заголовки с обоими .htaccess и PHP.

PNG

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:46:14 GMT
Server: Apache
Last-Modified: Thu, 18 Mar 2010 21:40:54 GMT
Etag: "c48024-230-4821a15d6c580"
Accept-Ranges: bytes
Content-Length: 560
Keep-Alive: timeout=4
Connection: Keep-Alive
Content-Type: image/png

HTML

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:46:13 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:46:13 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Wed, 24 Mar 2010 20:30:36 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-15

CSS

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:48:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:48:21 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/css

JavaScript

HTTP/1.1 200 OK
Date: Sat, 31 Jul 2010 12:48:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.11
Expires: Sat, 31 Jul 2010 15:48:21 GMT
Cache-Control: max-age=10800, s-maxage=10800, must-revalidate, proxy-revalidate
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Thu, 18 Mar 2010 21:40:12 GMT
Keep-Alive: timeout=4
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/x-javascript

Обновление

Я протестировал предложение Jumby и установил мой CSS, истекают к 1 году:

Cache-Control:max-age=31536000, s-maxage=31536000, must-revalidate, proxy-revalidate
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:4198
Content-Type:text/css
Date:Mon, 02 Aug 2010 20:48:56 GMT
Expires:Tue, 02 Aug 2011 20:48:56 GMT
Keep-Alive:timeout=5, max=99
Last-Modified:Thu, 18 Mar 2010 20:40:12 GMT
Server:Apache/2.2.14 (Win32) PHP/5.3.1
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.1

Однако Chrome все еще требует "явно некэшируемый".

17
задан Álvaro González 2 August 2010 в 20:54
поделиться

1 ответ

Трехчасового истечения может быть недостаточно «времени» для работы с медленной скоростью / скоростью страницы, и они могут пожаловаться на это. Я видел это со статическим контентом на своих сайтах с 4-часовым истечением срока действия и yslow (не пробовал с материалами Google).

Большинству из них нужен версионный статический контент с ДЛИННЫМ сроком действия (например, 1 год); см. здесь

4
ответ дан 30 November 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: