Публикация статического сайта
pages хостит статические сайты: всё, что собирается в папку с HTML, CSS и JavaScript (Vite, Astro,
экспорт Next.js, Hugo, просто файлы). Каждая загрузка — это деплой со своим адресом; алиасы дают
постоянные имена.
Задеплойте папку
Соберите сайт и из его каталога выполните:
xvii pages deploy
Без аргумента CLI ищет dist, build, out или public. Он упаковывает папку, загружает её и печатает
адрес деплоя, https://<id>.pages.xvii.network, где <id> — восемь шестнадцатеричных символов, например
3f9a2b1c.
Деплои неизменяемы. Каждый живёт срок по умолчанию на сервере (две недели, если администратор не
поменял) и потом удаляется сам.
Дайте ему имя
xvii pages deploy dist --name my-site
печатает второй адрес, https://my-site.pages.xvii.network. Алиас всегда указывает на один деплой; новый
деплой с тем же именем переставляет его, а старый деплой остаётся в истории. Деплои, на которые указывает
алиас, никогда не удаляются.
Откатите
xvii pages rollback my-site
возвращает алиас к предыдущему деплою. Ничего не пересобирается: откат — это просто перестановка указателя.
Полезные флаги
| Флаг |
Что делает |
--ttl 3d |
срок жизни: 12h, 3d, 2w или never |
--keep |
никогда не удалять этот деплой |
--spa |
отдавать index.html на неизвестные пути (клиентская маршрутизация) |
--password PASS |
спрашивать у посетителей пароль |
--qr |
напечатать QR-код, чтобы открыть на телефоне |
--watch |
деплоить заново при каждом изменении, пока не нажмёте Ctrl-C |
--team SLUG, --project ID |
куда относится деплой |
Редиректы, заголовки и 404
pages читает _redirects и _headers в формате Netlify / Cloudflare Pages из корня папки и отдаёт
404.html для отсутствующих путей:
/blog/* /posts/:splat 301
/api/* https://api.example.com/:splat 200
/assets/*
Cache-Control: public, max-age=31536000, immutable
Свой домен
xvii pages domains my-site add www.example.com
печатает DNS-записи, которые нужно создать (TXT, подтверждающую владение, и CNAME). Когда они есть:
xvii pages domains my-site check www.example.com
Сертификат выпускается при первом заходе. Если DNS домена в сервисе domains, подключение там делает всё
это в один шаг: см. Свои домены.
Дальше