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

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

Когда вы постоянно вносите изменения в стили/скрипты, то браузерам ваших посетителей нужно подгружать уже обновленные файлы автоматически, а не чистить кеш. Установив этот хак вы увидите, в строке подключения после каждого файла, версию привязанную к времени последней модификации.
Установка:
1. Открыть engine/modules/main.php и найти:
echo $tpl->result['main'];

Добавить ниже:
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 1.1.1 : автозагрузка стилей и скриптов.

Скачать: cоздайте аккаунт или авторизуйтесь для скачивания файла.
 
Версия DLE: 11.x-14.x
 
Источник:

Примечание от Oxigen: добавлен плагин

  • Oxigen
  • 4
  • 462
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

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

vir2oz 8 марта 2021 21:00
Oxigen, да, я перед этим просматривал код, просто написал такой комментарий, чтобы можно было его быстро скопировать.
Oxigen 7 марта 2021 19:56
vir2oz, будьте внимательны. Приведенный вами код хака идентичный коду в статье. Разница только в после какой строки подключать.
vir2oz 7 марта 2021 10:56
kokoswom, на одном форуме написал, что не работает и killoff доработал. После:
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']);
        }
    }
}
kokoswom 7 марта 2021 02:24
14.1 ни через плагины ни через сам файл движка не пашет хак