Как можно реализовать автоматическое очищение (обновление) КЕШа?
Может правильно , а может не правильно сформулировал вопрос.
Суть в следующем: при добавлении, изменении или замене файлов на хостинге , сайт не видит этого пока не прожать ctrl + f5 , на мобилке также. Т.е. взять сафари. Нужно идти в настройки, очищать website data чтобы увидеть изменения на сайте.
Как можно реализовать автоматическое очищение КЕШа , чтобы не было данных процедур ?
Заголовки не очистят клиентский кеш, они лишь скажут браузеру не кешировать данную страницу.
Слать такие заголовки при каждом запросе разумеется не стоит.
Думаю, конечно, что нагрузка на сервер отдавать будет и вариант на временный период перейти, но опять же не понимаю, как , например, устроенно допустим на любом сайте, где информация сразу показывается людям, без всяких обновлений и тд.
Многие используют сборщики js css файлов, например gulp, webpack. Они поддерживают версионность, т.е. при обновлении файла происходит пересборка js css, и ссылка в коде страницы меняется,например было <link rel="stylesheet" href="app.css?ver=1" />
стала <link rel="stylesheet" href="app.css?ver=2" />
ArthurAm, получается, нам нужно переименовать все файлы, которые подгружаются, а после обновы файла, добавлять цифры ( обновлять) и версии сайта везде будут также обновлены без всяких лишних действий?
Антон Добрынин, я бы посмотрел в сторону сборщиков типа gulp, он все ваши файлы css соберет в один, который вы подключаете в шаблон в head или еще куда.
При изменении какого-нибудь из этих файлов, gulp будет автоматически пересобирать css и добавлять к ссылке версию.
Для js его тоже можно использовать, но нужно тестить, возможно будут конфликты.
ArthurAm, оу, сложновато , пока думаю сделать через <?php echo $vers; ?>запрос и все, решение было на стеке, но опять же, пока понять все это сложновато, спасибо за помощь! :)
Антон Добрынин, обычно после знака вопроса пишется версия скрипта или css стиля (можно и любые другие значения). Браузер кеширует ссылку my_css.css?rand=12345, но когда мы меняем значение rand на другое, например - my_css.css?rand=12346, то браузер уже видит как бы новый файл и обновляет его.
Максим Компаниец, получается, нам нужно переименовать все файлы, которые подгружаются, а после обновы файла, добавлять цифры ( обновлять) и версии сайта везде будут также обновлены без всяких лишних действий?
Вообще по уму можно сделать так, чтобы скрипт добавлял номер версии к урлу. Самый простой способ - писать его руками. Но можно заюзать PHP-шный filetime(). В таком случае кеш будет обновляться только если файл действительно изменился, а не вообще всегда.