Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Кеширование js/css через "?число" не работает...


Автор: stalker2000 18.7.2016, 11:35
Приветствую. Для кеширования файлов js и css добавил в код всем известную конструкцию с временем последнего изменения файла:
Код

  <link rel="stylesheet" type="text/css" href="css/general.css?<?= filemtime('css/general.css'); ?>" />
  <script type="text/javascript" src="js/functions.js?<?= filemtime('js/functions.js'); ?>"></script>

На всякий случай решил посмотреть в фаербаге как оно работает. Каково же было моё удивление, когда я увидел что никто ничего не кеширует.  smile
По-порядку. Захожу первый раз, с чистым кешем, всё берётся с сервера. Второй раз, уже всё берётся из кеша браузера, как и задумано:
user posted image

Но, немного погодя (буквально через минуту) захожу на страницу опять и вижу, что никакого кеширования искомых файлов не делается:
user posted image

Получается, все эти телодвижения бессмысленны? Но ведь так делает весь интернет. Зашел на вк, там всё работает как положено:
user posted image

Получается, грабли у меня? Но где? Посмотрел заголовки ответа сервера (это для страницы):
Код

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 18 Jul 2016 08:19:11 GMT
Content-Type: text/html
Content-Length: 775
Connection: keep-alive
X-Powered-By: PHP/5.4.45-0+deb7u2, PleskLin
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip

Может быть кеширования нет из за заголовков "no-cache, must-revalidate, post-check=0, pre-check=0"? Но кто их шлёт? В моём коде такого точно нет. Дальше, вот заголовок ответа и запроса непосредственно для самого файла general.css:
Код

HTTP/1.1 304 Not Modified
Server: nginx
Date: Mon, 18 Jul 2016 08:19:11 GMT
Last-Modified: Mon, 18 Jul 2016 07:41:22 GMT
Connection: keep-alive
Etag: "578c8822-9d7"
X-Powered-By: PleskLin



GET /------------/css/general.css?1468827682 HTTP/1.1
Host: ------------
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 FirePHP/0.7.4
Accept: text/css,*/*;q=0.1
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://-----------------/
Cookie: PHPSESSID=03c85922138d003360ec7b3d545b60a7; imp_id=56802e9cc2317f3a15434e5850903671; adminer_version=0
Authorization: Basic ************
x-insight: activate
Connection: keep-alive
If-Modified-Since: Mon, 18 Jul 2016 07:41:22 GMT
If-None-Match: "578c8822-9d7"

Последние две строки намекают на то, что файл не менялся. Но он тем не менее не кешируется, ни в какую.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)