Я работаю с Magento, и есть функция, которая объединяет CSS и Javascript в один большой файл.
Независимо от плюсов и минусов этого, существует следующая проблема:
Окончательный файл кэшируется на нескольких уровнях, которые включают, но не ограничиваются:
Magento использует сумму MD5 объединенных имен файлов css для генерации нового имени файла для объединенного файла css. Чтобы каждая страница с отдельным набором файлов css получала соответствующий объединенный файл css.
Чтобы обойти проблему кеширования, я также включил в этот хэш отметки времени изменения файла, чтобы новый хеш генерировался каждый раз css изменен.
Таким образом, все преимущества оценки кэширования без повторной валидации, но если что-то изменится, это станет видимым мгновенно, потому что изменилась ссылка на ресурс.
Пока все хорошо:
Единственная проблема в том, что имена файлов используются для генерации has, это только те, на которые обычно напрямую ссылаются в блоке HTML-Head, и не включают импорт css внутри этих файлов .
Итак изменения в файлах, которые импортируются внутри файлов css, не приводят к получению нового хэша.
Нет, я действительно не хочу рекурсивно анализировать весь импорт и сканировать их или что-то в этом роде.
Я скорее думал о решении на основе каталогов. Есть ли что-нибудь для эффективного отслеживания «последнего изменения внутри каталога» на основе файловой системы?
Мы используем ext4.
Или, может быть, есть другой способ, возможно, с помощью команды find, который выполняет всю работу на основе на индексах inode?
Что-то в этом роде?
Я видел много программ, которые мгновенно «видят» изменения, не просматривая файловые системы целиком. Я считаю, что в Linux также есть своего рода демоны «наблюдения за манипуляциями с файлами».
Проблема в том, что каталог css довольно велик.
Может ли кто-нибудь указать мне правильное направление?