Вопросы по MinifyX. Minifix modx
Snippet / MinifyX / Components / docs.modx.pro
Automate comprassion and chaching of scrips and styles on the site.
Parameters
&cacheFolder | folder to keep ready files. |
&cssFilename | basic name of ready CSS file. |
&cssPlaceholder | name of CSS placeholder. It is used if ®isterCss=`placeholder` |
&cssSources | list of CSS files for handling. «*.css», «*.less» и «*.scss» can be indicated. |
&forceUpdate | disable the check of file updating and every time generate new scripts and styles. |
&jsFilename | basic name for ready JS file. |
&jsPlaceholder | name of placeholder javascript. It is used if ®isterJs=`placeholder` |
&jsSources | list of JS files for handling. «*.js» и «*.coffee» can be indicated. |
&minifyCss | initiate CSS modification? |
&minifyJs | initiate JS modification? |
®isterCss | connection of css: can be saved in placeholder «placeholder» or activated in tag <head> - «default». |
®isterJs | connection of javascript: can be saved in placeholder «placeholder», activated in tag <head> - «startup» or place before closing <body> - «default». |
Samples
Output of snippet with auto style registration before </head> and scripts before </body>:
[[MinifyX? &minifyCss=`1` &minifyJs=`1` ®isterCss=`default` ®isterJs=`default` &cssSources=` assets/templates/himyf/css/normalize.css, assets/templates/himyf/css/foundation.css, assets/templates/himyf/css/font-awesome.css, assets/templates/himyf/css/app.css ` &jsSources=` assets/templates/himyf/js/foundation.js ` ]]Output of snippet work to placeholders &cssPlaceholder on default [[+MinifyX.css]] and &jsPlaceholder on default [[+MinifyX.javascript]]:
[[MinifyX? &minifyCss=`1` &minifyJs=`1` &cssSources=` assets/templates/himyf/css/normalize.css, assets/templates/himyf/css/foundation.css, assets/templates/himyf/css/font-awesome.css, assets/templates/himyf/css/app.css ` &jsSources=` assets/templates/himyf/js/foundation.js ` ]] [[+MinifyX.css]] [[+MinifyX.javascript]]Вопросы по MinifyX / modx.pro
Каждый раз прежде, когда пытался использовать это дополнение, натыкался на нерешимые преграды и отказывался, так и не исследовав всё до конца. Но в текущий проект большой и требует серьёзной оптимизации — вот и пытаюсь последние 2 дня разобраться что откуда растёт. Итак, у меня следующие вопросы по использованию MinifiX:- Можно ли настроить уровень сжатия css? Хотелось бы получить минифицированный в 1 строку файл, а то получается файл из тысяч строк кода… А минифицировать в одну строчку рабочий файл стилей и подключать его минифицированным как-то неправильно — ведь потом с ним ещё работать...
- Обрабатывает уже сжатые файлы. Почему-то некоторые минифицированные мною файлы в одну строку с префиксом .min он всё равно разделяет на строки добавляя в общий файл стилей.
- Иконки fontawesome из уикита при подключении через MinifyX иногда непонятно почему превращаются в иероглифы:
- Что делать с необработанными файлами? Хотя системная настройка minifyx_process_registered включена, у меня всё равно не обрабатываются и подключаются в конец head и body следующие файлы:<link rel="stylesheet" type="text/css" href="/assets/components/tickets/js/web/lib/prettify/prettify.css"> <script src="/assets/components/office/js/main/lib/jquery.form.min.js"></script> <script src="/assets/components/office/js/main/lib/jquery.jgrowl.min.js"></script> <script src="/assets/components/tickets/js/web/lib/jquery.form.min.js"></script> <script src="/assets/components/tickets/js/web/lib/jquery.jgrowl.min.js"></script> <script src="/assets/components/tickets/js/web/lib/jquery.sisyphus.min.js"></script> <script src="/assets/components/ajaxform/js/lib/jquery.form.min.js"></script> <script src="/assets/components/ajaxform/js/lib/jquery.jgrowl.min.js"></script> <script src="/assets/components/ajaxform/js/lib/jquery.form.min.js"></script> <script src="/assets/components/ajaxform/js/lib/jquery.jgrowl.min.js"></script>
- Повторяющиеся файлы. И кстати, зачем одни и те же скрипты подключаются каждым компонентом отдельно? В примере из прошлого пункта видно что скрипты jquery.form.min.js и jquery.jgrowl.min.js подключаются 4 раза на одной странице 3-мя разными компонентами!
- РЕШЕНО. Не подхватывает сырой код между тегами style и scripts. Все мозги себе сломал, пока не понял, что обрабатывается только тот код в этих тегах, который регистрируется через методы modX::regClientScript, modX::regClientCSS и т.п. Как-то неявно это было описано, а скорее всего это я не совсем понимал и зациклился на описании системных параметров minifyx_processRawJs и minifyx_processRawCss, где не упоминается что код должен быть зарегистрирован этими методами. У меня на сайте очень много js-кода разнесено по чанкам, т.к. там подставляются различные переменные системой. В итоге решил эту проблему на феноме путём добавления такой строки для каждого чанка:{$_modx->regClientHTMLBlock($_modx->getChunk('scripts.ajax'))} {$_modx->regClientHTMLBlock($_modx->getChunk('scripts.modal'))}
modx.pro
MinifyX MODX Revolution. Уменьшение нагрузки на сервер MODX
MinifyX - это сниппет, позволяющий комбинировать JS и CSS файлы для уменьшения нагрузки на сервер и оптимизации скорости загрузки.
MinifyX создан и поддерживается SCHERP Ontwikkeling
Системные требования
Для работы MinifyX требуется MODX® Revolution 2.2.0 или более новой версии.
История создания
Версия |
Дата опубликования |
Автор |
Изменения |
1.0.0-PL1 |
26 марта 2012 |
Patrick Nijkamp (SCHERP Ontwikkeling) |
|
1.1.0-PL |
09 сентября 2012 |
Vasiliy Naumkin |
Уменьшен размер и переработан код. |
Загрузка и установка
Установка производится с помощью MODX® package manager.
MinifyX объединяет файлы в один кэш-файл и загружает их из него. Если объединяете CSS файлы, то нужно использовать абсолютные пути при использовании изображений или других URL-зависимых вызовов, то же самое касается javascript. Некоторые фреймворки используют бутлоадеры (подобно EXT), которые должны быть в соответствующей директории до начала работы. Убедитесь в отсутствии этой ловушки, это сэкономит много времени .
Размещение сниппета.
Разместите основной вызов сниппета [[MinifyX]] на странице. Размещенный сниппет позволяет ассоциировать странице нижеприведенные плейсхолдеры:
Версия | Дата опубликования | Автор | Изменения |
1.0.0-PL1 | 26 марта 2012 | Patrick Nijkamp (SCHERP Ontwikkeling) | Первый выпуск |
1.1.0-PL | 09 сентября 2012 | Vasiliy Naumkin | Уменьшен размер и переработан код. |
Конфигурирование параметров
Настройка MinifyX может быть произведена с помощью следующих параметров:
Параметр |
Описание |
Значение |
Значение по умолчанию |
Необходимость |
jsSources |
Список (разделитель - запятая) URL к JS файлам из базы сайта. |
Строковое значение, разделенное запятой |
(пусто) |
нет |
cssSources |
Список (разделитель - запятая) URL к CSS файлам из базы сайта. |
Строковое значение, разделенное запятой |
(пусто) |
нет |
minifyCss |
Нужно ли уменьшать размер CSS или нет |
0 = нет, 1 = да |
0 |
нет |
minifyJs |
Нужно ли уменьшать размер JS или нет (разрешено только для блока комментариев, экспериментальная опция!) |
0 = нет, 1 = да |
0 |
нет |
cacheFolder |
Основной URL с сайта к папке для кэша файлов. |
Строковое |
assets/components/minifyx/cache/ |
нет |
jsFilename |
Имя базы расположения js файла, без расширения |
Строковое |
scripts |
|
cssFilename |
Имя базы расположения css файла, без расширения |
Строковое |
styles |
Примеры
Ниже вы найдете описание основного вызова сниппета и расположения плейсхолдеров. Каждый параметр опционален, необязателен, мы просто использовали некоторые возможности для настройки.
<html> <head> [[MinifyX? &jsSources=` /assets/myframework.js, /assets/lightbox.js, /assets/script.js` &cssSources=` /assets/style1.css, /assets/style2.css` ]] [[+MinifyX.javascript]] [[+MinifyX.css]] </head> <body></body> </html>www.modx.cc