У меня есть веб-приложение 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 год ниже текущей даты.