Обновляем файлы CSS без очистки кеша

Обновляем файлы CSS без очистки кеша

Внесли глобальные изменения в CSS, но они отображаются только если очистить кеш? Но а как быть пользователям, которые ранее посещали сайт и сейчас зашли к вам со старой версией CSS, которая хранится у них в кеше браузера. Ваши изменения они могут не заметить и при этом что-то на сайте может отображаться криво. Этот хак поможет автоматически обновить у них содержимое кеша.


Установка:
1. Открыть engine/modules/main.php и найти:
$tpl->load_template ( 'main.tpl' );

Добавить ниже:
$tpl->set( '{uniqid}', '?' . uniqid() );

2. Открыть main.tpl шаблона и в строке подключения CSS, в котором делаете изменения, например:
<link href="{THEME}/style/styles.css" type="text/css" rel="stylesheet" />

Добавить:
{uniqid}

Чтобы получилось так:
<link href="{THEME}/style/styles.css{uniqid}" type="text/css" rel="stylesheet" />

Готово!

Добавляя в адрес ?{uniq} мы таким образом сообщаем браузеру, что подключается другой файл с другим именем. После через дня 2-3 (может и меньше), в зависимости от посещаемости сайта, можно убрать этот код в main.tpl или оставить это по желанию.
 
Автор: KoKauH
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Комментариев 3

ZzzBep 2 июня 2022 14:42
А как эту конструкцию заставить работать, только после обновления-изменения файла.
А то сейчас получается что каждый раз новая версия после обновления страницы.
Oxigen 5 декабря 2018 07:04
Цитата: bymerpro
Почему в инструкции {uniqid} а после ?{uniq} ?

просто это краткое обозначение функции uniqid в статье, которая генерирует уникальный id.
--------------------
Всё, что вы напишите, будет использовано против вас при показе контекстной рекламы :)
bymerpro 5 декабря 2018 03:08
Почему в инструкции {uniqid} а после ?{uniq} ?