Руководство Melbis Shop: оглавление
Раздел 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 принимает его в том же виде.
engine_static_add.bundle. Файл записывается раньше
сборки: если сборка отказала — например, .psv не вернул
массив ключей, — файл уже сохранён, а бандл, на котором сборка
остановилась, остался прежним.statics/ кеша не касается.Номер сборки магазина поднимается только по 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/ не
попадают.