Авто очистка кэша CSS и JS файлов
Как же задолбался я удалять эти два файла на момент создания собственного дизайна. Только изменив одну цифру для какого-нибудь отступа нужно лезть в этот кэш и «чистить» его. Наконец я не выдержал…
Открываем главный конфиг сайта /config/config.php строка 123 приблизительно так там
Отключив кэширование разработчики позабыли о файлах CSS и JS — которые тоже кэшируются CMS — что создаёт тоннs головняка на стадии «создания» своего дизайна. Дописываем строку $config['sys']['cache_css_js'] = false; получится:
Шуруем в какой-то очень главный модуль отвечающий за что-то там серьёзное по адресу /engine/modules/viewer/Viewer.class.php строка 1044 там:
По коду ясно, что кэширование CSS и JS файлов происходит «навечно» и их содержание изменится только если удалить эти файлы. Вот таким образом, разработчики CMS обрекли всех начинающих разрабов на тысячи лишних телодвижений.
Что делаем — ставим наше собственное условие !Config::Get('sys.cache_css_js') из конфига через «или»:
Всё :) Слава яйцам!
Горы с плеч и чувство незабываемой лёгкости наполнит ваше тело.
PS: важно установить параметр в true сразу после смены дизайна. Включение данной опции на нагруженном сайте может привести к многократному увеличению нагрузки — вы же всё-таки кэш отключаете…
Открываем главный конфиг сайта /config/config.php строка 123 приблизительно так там
/** * Настройки кеширования */ // Устанавливаем настройки кеширования $config['sys']['cache']['use'] = false; // использовать кеширование или нет $config['sys']['cache']['type'] = 'file';
Отключив кэширование разработчики позабыли о файлах CSS и JS — которые тоже кэшируются CMS — что создаёт тоннs головняка на стадии «создания» своего дизайна. Дописываем строку $config['sys']['cache_css_js'] = false; получится:
/** * Настройки кеширования */ // Устанавливаем настройки кеширования $config['sys']['cache']['use'] = false; // использовать кеширование или нет $config['sys']['cache_css_js'] = false; // использовать кеширование CSS JS $config['sys']['cache']['type'] = 'file';
Шуруем в какой-то очень главный модуль отвечающий за что-то там серьёзное по адресу /engine/modules/viewer/Viewer.class.php строка 1044 там:
/** * Если кеш существует, то берем из кеша */ if( !file_exists($sCacheName) ) { /** * Создаем директорию для кеша текущего скина, * если таковая отсутствует */ if(!is_dir($sCacheDir)){ @mkdir($sCacheDir); }
По коду ясно, что кэширование CSS и JS файлов происходит «навечно» и их содержание изменится только если удалить эти файлы. Вот таким образом, разработчики CMS обрекли всех начинающих разрабов на тысячи лишних телодвижений.
Что делаем — ставим наше собственное условие !Config::Get('sys.cache_css_js') из конфига через «или»:
/** * Если кеш существует, то берем из кеша */ if( !file_exists($sCacheName) || !Config::Get('sys.cache_css_js') ) { /** * Создаем директорию для кеша текущего скина, * если таковая отсутствует */ if(!is_dir($sCacheDir)){ @mkdir($sCacheDir); }ir); }
Всё :) Слава яйцам!
Горы с плеч и чувство незабываемой лёгкости наполнит ваше тело.
PS: важно установить параметр в true сразу после смены дизайна. Включение данной опции на нагруженном сайте может привести к многократному увеличению нагрузки — вы же всё-таки кэш отключаете…
Профессиональные сервера DELLR630 справятся с любой вашей задачей.
10 комментариев
Нет слов. Откуда вы такие начинающие беретесь? Русским языком комментирован конфиг же:
А вообще есть такая штука как поиск, помогает.
з.ы. а про кеш, который вы говорили в топике — это кеш БД.
И как-то не совсем ясно как «указывает на необходимость слияния файлов по указанным блокам.» относится к кэшированию…
Проблем при отключении «слияния» появится больше, чем было с ним — файлы CSS и JS будут закэшированы самим браузером. Доказывать никому ничего не буду ;)
— удобства и уменьшения загружаемых файлов
— предотвращения кэширования браузером
Поясню — в данном случае, речь идёт о кэшировании результатов операции слияния CSS файлов, чтобы не выполнять её каждый раз. При этом, по «понятиям» в случае именно отключения кэширования, операция СЛИЯНИЯ CSS файлов должна выполняться, но уже каждый раз заново.
Таким образом, отключив функцию слияние CSS файлов, процесса кэширования результатов данной функции не происходит в принципе, так как вы отключили саму функцию, результат которой должен был быть закэширован. Отсюда следует, что имея предоставленный разработчиками функционал, вы НЕ можете отключить кэширование функции слияния не отключив при этом саму функцию слияния.
В данном топике приведён вариант ОТКЛЮЧЕНИЯ кэширования результатов функции слияния CSS файлов, при штатной работе самой функции слияния файлов(!)
ЗЫ: PSNet, ты знатный троль! Заставил меня доказывать, что ты не прав, когда я обещал этого не делать :)
PPS: отключить кэширование картинок можно отключив вылачу картинок сервером, а отключить кэширование страниц сайта легко — отключив сайт. Так судя по всему всегда делает уважаемый PSNet
Если это не так — что тогда по вашему означает «кэширование»? :)