Предпросмотр
Предпросмотр — страницы сайта по адресам /preview (главная) и /preview/<страница> (/preview/menu для /menu). Его добавляет интеграция @seamlet/astro, писать его не нужно.
| Запрос | Что показывает |
|---|---|
GET /preview |
страницу с опубликованным контентом |
POST /preview с контентом как JSON |
страницу с этим контентом, ничего не сохраняя (до 1 МБ) |
Редактор отправляет так черновик после каждой правки, и сайт перерисовывает страницу своим кодом.
- Встраивать предпросмотр в рамку может только ваша CMS:
Content-Security-Policy: frame-ancestors <адрес CMS>. - Поисковики его не индексируют (
X-Robots-Tag: noindex), браузеры не кешируют. - Черновик принимается только как
application/json: форма с чужого сайта его не отправит. - Мост к редактору загружается только на
/previewи только внутри рамки CMS. Посетителям публичных страниц он не грузится.
Где разместить
Заголовок раздела «Где разместить»Предпросмотру нужен сервер, который рисует страницы по запросу, — обычный Node-процесс сайта (@astrojs/node). Публичные страницы при этом могут быть статикой на любом хостинге.
- Сайт на сервере — предпросмотр живёт там же, по
https://<сайт>/preview. - Сайт статикой на обычном хостинге — тот же проект собирается и запускается как Node-сервер в другом месте: на вашей VPS или в serverless. Тогда адрес предпросмотра — этот сервер.
Подключить к CMS
Заголовок раздела «Подключить к CMS»В CMS: Сайты → Настройки сайта → Адрес предпросмотра главной страницы → https://<сайт>/preview → Подключить. Адрес должен начинаться с https:// (http:// — только для localhost). Остальные страницы редактор откроет под ним сам.
Без предпросмотра контент всё равно правится — в панели «Все поля», без вида страницы.
Мост сообщает редактору версию своего протокола. Если @seamlet/astro на сайте говорит на другой версии, чем CMS, редактор вместо страницы покажет «Сайт нужно обновить» — тогда обновите пакет на сайте. Править контент в панели «Все поля» при этом можно.