
- MODX 3
- PHP 8.2


ImageOptimizer создаёт статические WebP/AVIF рядом с оригиналом и оборачивает <img> в <picture> на выходе страницы. Thumb3x и pThumb делают on-the-fly ресайз по URL. Пакеты можно комбинировать, но не дублируйте responsive на одних и тех же картинках. См. Совместимость.
Нет. Inject работает на любом HTML-сайте MODX. MS3 чаще всего на витрине магазина.
SVG не конвертируется и не попадает в очередь. Обрабатываются растровые форматы: jpg, png, gif; webp как source тоже пропускается.
Да, если вы сделали rebuild по корню assets/ или большому каталогу. Ограничьте path при rebuild (assets/images/catalog) или используйте cron с меньшим imageoptimizer_cron_limit.
Worker не стартует от upload или rebuild. Варианты:
pending = 0, можно Остановить (Админка)cron/convert.php (фон без открытой вкладки)cli/convert.php --limit=NС версии 1.0.4 — нет. Одна кнопка крутит батчи, пока очередь не опустеет или вы не нажмёте Остановить. При лимите времени PHP дожмите cron или нажмите снова.
Путь относительно корня media source (basePath), без ведущего /. Пример MS3: images/resources, не /images/resources. Dry-run считает файлы; строк очереди будет больше (breakpoints × formats).
Частые причины: upscale=0 (картинка меньше breakpoint), preflight (SVG, animated GIF, HEIC без декодера), MemoryLimit.
Обновите пакет: worker создаёт core/cache/imageoptimizer/ перед копированием. Либо вручную:
mkdir -p core/cache/imageoptimizer
chmod 775 core/cache/imageoptimizerУдалите варианты *.webp / *.avif на диске, удалите записи done или сделайте rebuild по path.
<picture> не появляется imageoptimizer_enabled и imageoptimizer_inject_frontend = 1OnWebPagePrerender<img src> резолвится в media source (локальный assets/...)done)Подробнее: Решение проблем.
Д после inject Обновите до 1.0.4+. Старый HTML-кэш удалите: Очистить кэш MODX или Очистить варианты в админке. Подробнее: Авто-inject и picture.
class="no-optim" (из skip_classes), атрибут data-imageoptimizer-skip или свой класс в imageoptimizer_skip_classes.
ImageOptimizer не перезаписывает ваш srcset; может добавить lazy/decoding. Для полного <picture> уберите ручной srcset или используйте skip.
Так задумано: HTML-кэш inject отключён для залогиненных на фронте. Проверяйте страницу в режиме инкогнито или после выхода из аккаунта.
Нет. imageoptimizer_inject_email в настройках зарезервирован, код inject для email не реализован.
Установите VueTools ≥ 1.1.2-pl, очистите кэш браузера. Пересборка админки нужна только при установке из исходников, не из ModStore. См. README на GitHub.
Проверьте ACL: группа должна иметь imageoptimizer_view. Переустановите пакет или добавьте права вручную. См. Админка.
Коннектор вернул HTML. Обновите страницу, проверьте Network → connector.php. См. Решение проблем.
Live только обновляет цифры на экране. Фоновая обработка — cron (команда на вкладке Server).
FPM часто без imagick и с пустым PATH. CLI и FPM должны быть одной версии PHP. См. Решение проблем.
Уменьшите imageoptimizer_cron_limit. Конвертируйте ночью большими --limit через CLI.
Каждый breakpoint × format — отдельный файл. Для каталога из 10k фото × 5 breakpoints × 2 formats планируйте место или сократите breakpoints/formats.
Баги и предложения: Issues на GitHub.