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

Когда вы занимаетесь поддержкой проекта или постоянно вносите изменения в стили/скрипты, то браузерам ваших посетителей нужно подгружать уже обновленные файлы автоматически, а не чистить кеш. Собственно, сама хак:
Идем в /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 13+ можно просто установить плагин, без внесения правок в файлы движка:
obnovlenie-css-i-js-bez-ochistki-kesha.zip
[881 b] (cкачиваний: 120)
ВНИМАНИЕ! Данный хак не работает с dle-asset, думаю не нужно объяснять почему… :)
Похожие статьи:
Комментарии: