PHP - Контроль кэша не работает, если дата сервера установлена ​​неправильно - PullRequest
0 голосов
/ 24 января 2020

У меня есть веб-приложение php, работающее на Ubuntu 16 с использованием apache2 и php 7.1. Каждый запрос к apache перенаправляется в один файл php.

Если кто-то вызывает файл javascript или css, я устанавливаю заголовки контроля кэша, как показано ниже:

header("Cache-Control: public, max-age=31104000");
header("Pragma: public");
header("Expires: " . date(DATE_RFC822, strtotime(" 360 day")));

Однако по какой-то причине chrome и firefox не кэшировали мои файлы. После дальнейшего расследования я понял, что дата моего сервера была отключена на 7 дней. После того, как я исправил дату с помощью команды ниже, все работало нормально.

date -s 2020-01-23
date -s 18:30:00

Я провел еще какое-то тестирование, и кажется, что если дата на сервере отключена на 7 или более дней ниже текущей даты, веб-сайт прекратить кэширование моих css, javascripts или файлов изображений.

Есть ли способ заставить мое веб-приложение продолжать кэшировать файлы, даже если дата на моем сервере внезапно будет неверной?

Редактировать : Я думаю, что время истечения времени / максимального возраста вступает в силу в браузере (по какой-то причине). У меня был лимит в 7 дней, прежде чем я заметил, что проблема переключилась на 1 год, но если дата моего сервера была выключена на 7 дней ниже, это все равно истекло мои файлы. И теперь это не так, если я не установил его на 1 год ниже текущей даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...