Плагин Обновление CSS и JS без очистки кеша

killoff

Команда форума
Moderator
Разрушитель (V)
Сообщения
182
Симпатии
92
Баллы
1 418
2021-03-07_14-41-32.png
Когда вы занимаетесь поддержкой проекта или постоянно вносите изменения в стили/скрипты, то браузерам ваших посетителей нужно подгружать уже обновленные файлы автоматически, а не чистить кеш.

Собственно, сама плюшка:

Идем в /engine/modules/main.php (в DLE 13+ это всё нужно сделать через создание плагина) и перед:
Код:
echo $tpl->result['main'];
Вставляем:
Код:
### CSS/JS ###
preg_match_all("#<(link|script).+?(href|src)=('|\")(".$config['http_home_url']."|/)(.*?(\.css|\.js))\\3.*?>#i", $tpl->result['main'], $jscssarr);
if(!empty($jscssarr[5])) {
    foreach ($jscssarr[5] as $jscssfile) {
        if (file_exists(ROOT_DIR."/".$jscssfile)) {
            $tpl->result['main'] = str_ireplace($jscssfile, $jscssfile."?v=0.". filemtime(ROOT_DIR."/".$jscssfile), $tpl->result['main']);
        }
    }
}
Теперь вы увидите после каждого файла версию, привязанную к времени последней модификации.


ВНИМАНИЕ! Данный хак не работает с dle-asset.
 
Последнее редактирование:
А не будет ли дополнительная нагрузка на диск от того что при каждой загрузке страницы, скрипт обращается к диску для получения актуальной информации о дате редактирования файлов стилей и скриптов, или при этом нагрузка ничтожно мала?
 
А не будет ли дополнительная нагрузка на диск от того что при каждой загрузке страницы, скрипт обращается к диску для получения актуальной информации о дате редактирования файлов стилей и скриптов, или при этом нагрузка ничтожно мала?
Вообще такое лучше использовать только при допиле стилей и скриптов шаблона. По поводу нагрузки, т.к. я не кодер, ничего не могу сказать, но на многих сайтах крупных висит такое или что то подобное. Вообще можно это использовать только в начале настройки стилей и скриптов, а потом вырубить это по завершению всех работ. Далее при надобности - снова включить для проверки изменений и снова вырубить плагин...
 
Назад
Верх