Intereting Posts
Использование YUI Compressor в файлах JavaScript, содержащих PHP Самый простой способ построить дерево из списка предков Предотвращение прямого доступа к файлу, вызываемому функцией ajax Не удалось открыть поток: нет такого файла или каталога, да есть! Удаление всего класса PHP Изображение случайно повреждено (но загружается после обновления) и показывает «Ресурс, интерпретируемый как изображение, но переданный с типом текста MIME / html» Конкатенация + Тернар добавить к многомерному массиву с парой значений ключа Как сохранить значение выбранного пользователем параметра из выпадающего списка выбора в базу данных mysql? «Привет, мир» в PHP ничего не показывает Как сделать глобально доступный объект Ненавязчивая функция самостоятельных комментариев для размещения на существующих веб-страницах Преобразование строки в целое возвращает 2147483647 Время жизни объекта PHP Laravel 4: может ли одна модель обслуживать несколько таблиц БД?

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

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

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

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

Подумайте о добавлении заголовка «Cache-Control: public» в следующие ресурсы:

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

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

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

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


Вот полный набор заголовков некоторых элементов, загруженных после удаления браузера caché. Картинки используют настройки по умолчанию, которые я действительно не проверял раньше, остальные должны быть 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 по-прежнему утверждает, что он явно не кэшируемый .

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

Большинство из них хотят иметь статичный контент с версией с LONG expire times (например, 1 год); см. здесь

Проблема заключается в «обязательной переоценке» части вашей директивы по управлению кешем. Избавься от этого, и тебе должно быть хорошо идти.

Я просто получил аналогичную проблему, я обнаружил, что те же настройки и код генерируют предупреждение о проверке chrome при попытке моего тестового сервера на 127.0.0.1, но не на реальном сервере с реальным DNS-именем.