Костыль, решающий проблемы с кэшированием в Bludit CMS

June 16, 2024

Этот костыль поможет, если в при обновлении страницы браузер категорически отказывается подтянуть последние изменения в style.css и script.css при использовании CMS Bludit.

На период верстки, в заголовок HTML необходимо добавлять версию файла .css и .js. При этом версия при обновлении страницы каждый раз должна быть другая. Данный механизм мы будем реализовывать при помощи функции генерации хэша hash_file('алгоритм, полный путь) в PHP.

При подключении css в head.php, добавьте в конце расширения php функцию hash_file()

<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_THEME_CSS?>style.css?v=<?=hash_file('md5', 'https://адрес-сайта/путь/до/файла/стиля/style.css');?>">

При подключении js в index.php, добавьте в конце расширения php функцию hash_file()

<script src="<?php echo HTML_PATH_THEME_JS ?>script.js?v=<?=hash_file('md5', 'https://адрес-сайта/путь/до/файла/скрипта/script.js');?>"></script>

В итоге при каждом обновлении страницы, если style.css или script.css были изменены, браузер будет чётко понимать что в сервер была загружена новая версия стиля/скрипта и перезапишет ту, которую закэшировал.

P.S. Могу предположить что данная проблема имеется не со стороны CMS, а со стороны неправильно настроенного Nginx. Но пока я не нашел откуда ноги растут, буду использовать данный костыль.