Сборка и публикация
Публикация (деплой) — перенос сайта с вашего компьютера на сервер, доступный всем. Сначала Astro собирает проект в папку dist/, затем её содержимое выкладывают на хостинг. Что именно выкладывать, зависит от режима: чисто статический сайт или сайт со страницами по запросу.
Сборка
npm run build
npm run previewПервая команда собирает сайт в dist/ и выводит в терминале список созданных страниц. Вторая запускает собранную версию на http://localhost:4321 — пройдите по ней перед публикацией: так вы увидите сайт ровно таким, каким его получат посетители.
Статический сайт
Если адаптера нет, в dist/ лежат только HTML, CSS, картинки и скрипты:
dist/
├── index.html
├── about/index.html
├── posts/first-post/index.html
├── rss.xml
├── sitemap-index.xml
└── _astro/Такую папку можно выложить на любой хостинг статики: GitHub Pages, Netlify, Cloudflare Pages, Vercel или обычный веб-сервер nginx. Сервисы вроде Netlify сами выполняют npm run build после каждого коммита — в их настройках указывают команду сборки npm run build и папку dist.
Сайт с сервером
Если вы подключили адаптер Node.js и у сайта есть страницы с prerender = false, сборка создаёт две части:
| Папка | Что внутри |
|---|---|
dist/client/ | Статические файлы и заранее собранные страницы |
dist/server/ | Код сервера для страниц по запросу, эндпоинтов и действий |
Сервер запускают на хостинге командой:
HOST=0.0.0.0 PORT=8080 node ./dist/server/entry.mjsПеременные HOST и PORT задают, на каком адресе и порту слушать. На сервер копируют проект, выполняют npm ci и npm run build, а затем эту команду — обычно через менеджер процессов, который перезапустит сайт при сбое.
Другие платформы
Для облачных платформ есть свои адаптеры: npx astro add netlify, npx astro add vercel, npx astro add cloudflare. Код сайта остаётся тем же, меняется только адаптер в astro.config.mjs.
Сайт в подпапке
Если сайт будет жить не в корне домена, а например на https://example.com/blog/, укажите в настройках base: '/blog'. Внутренние ссылки тогда стройте с учётом import.meta.env.BASE_URL.
Частая ошибка
Выкладывают на хостинг весь проект вместе с src/ и node_modules/ и открывают index.astro — браузер показывает исходный код или ошибку. На статический хостинг загружают только содержимое dist/ после npm run build, а секреты из .env задают в настройках хостинга.