Перейти к содержимому

Предпросмотр

Предпросмотр — страницы сайта по адресам /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: Сайты → Настройки сайта → Адрес предпросмотра главной страницы → https://<сайт>/preview → Подключить. Адрес должен начинаться с https:// (http:// — только для localhost). Остальные страницы редактор откроет под ним сам.

Без предпросмотра контент всё равно правится — в панели «Все поля», без вида страницы.

Мост сообщает редактору версию своего протокола. Если @seamlet/astro на сайте говорит на другой версии, чем CMS, редактор вместо страницы покажет «Сайт нужно обновить» — тогда обновите пакет на сайте. Править контент в панели «Все поля» при этом можно.