3. Описание MCP-сервера › 3.3 Движок › Статика

Раздел engine_static_* работает с файлами, которые витрина отдаёт браузеру как есть, — css, js, .psv и другими, — и с папками статики. Здесь же читаются журналы сервера.

Где лежит

templates/<группа>/statics/…
templates/<группа>/units/<модуль>/…
<файл в корне сайта>

statics/ — общая статика группы шаблонов: библиотеки, стили, скрипты. Папки внутри неё создают, переименовывают и удаляют engine_static_dir_*. Сама statics/ — корень: её нельзя ни переименовать, ни удалить.

Папка модуля в группе шаблонов держит рядом с шаблонами его собственные css, js и .psv. Это тоже статика: её читают и сохраняют инструменты этого раздела. Сами шаблоны .htm — у engine_html_*.

Корень сайта.htaccess, robots.txt и другие файлы, кроме php: они тоже статика. Php корня — корневые скрипты engine_php_*.

Вне этих мест инструменты раздела ничего не создают, не сохраняют и не удаляют. Перенести файл статики можно ещё в папку картинок.

Статика у каждой группы своя: в отличие от шаблонов, у основной группы она не заимствуется.

Бандлы

Бандл склеивает несколько css или js в один файл statics/bundle.<имя> той же группы. Как устроена сборка, что значат приоритеты и файлы .psv — «Сборка статики».

В какие бандлы входит файл, записано в его описании бандла. Здесь это поле bundle из двух строк — тех же, что над редактором в среде разработки:

Поле Что это
param_info бандлы через запятую, у каждого после двоеточия приоритет: melbis.css: 10, print.css: 2
unit_info описание файла

engine_static_load отдаёт bundle файла, engine_static_save принимает его в том же виде.

Что делает сохранение

Номер сборки магазина поднимается только по build: пока номер прежний, браузеры посетителей держат у себя старые css и js.

Переименование, перенос и удаление

Описание бандла следует за файлом: переносится вместе с ним и снимается при удалении. Собранные statics/bundle.* при этом не пересобираются — в них остаётся прежнее, и удалённый файл продолжает приезжать на витрину. Поле bundled в ответе говорит, у скольких затронутых файлов было описание бандла.

Бандлы группы пересобирает сохранение любого её файла, который входит в бандл, — даже с прежним телом и без bundle. Перенос файла в другую группу оставляет несобранными обе группы.

Если из бандла ушёл последний файл, statics/bundle.<имя> остаётся на диске как был: собирать его больше не из чего. Такой файл удаляют engine_static_remove.

Журналы сервера

engine_static_load читает и журналы core/log/, их список с датой и размером даёт engine_map_tree. От журнала больше мегабайта приходит последний мегабайт, журнал целиком скачивает engine_whole_load. Что пишет каждый журнал — «Журналы, ошибки и метрики».

Вывода контейнеров, журнала MySQL и системного журнала сервера среди них нет: в стандартной установке они в core/log/ не попадают.