Статический сайт
Деплой статики: Vite, Astro, обычный HTML.
Статические сайты Railpack отдаёт встроенным веб-сервером Caddy.
Сайт со сборкой: Vite, Astro, React и другие
Railpack сам распознаёт SPA-фреймворки — Vite, Astro (кроме режима server), Create React App, Angular,
React Router с ssr: false, Next.js с output: 'export' — выполняет скрипт build и отдаёт результат.
Каталог результата определяется автоматически: обычно dist, для Next.js — out, для React Router —
build/client.
Если фреймворк не распознался или каталог другой, в настройках «Сборка и запуск» выберите:
- Результат сборки — Статический сайт;
- Каталог результата — каталог с готовыми файлами, например
dist.
Для SPA все неизвестные пути отдают index.html, поэтому клиентский роутинг работает.
Готовый HTML без сборки
Сайт распознаётся как статический, если в корне есть index.html, каталог public или файл Staticfile.
Корень сайта выбирается так: переменная RAILPACK_STATIC_FILE_ROOT, поле root в Staticfile, каталог
public, корень репозитория.
root: dist
index_fallback: true # отдавать index.html для неизвестных путей (SPA)Порт
Caddy слушает переменную PORT, а без неё — 80. Порт домена по умолчанию — 3000, поэтому добавьте
переменную PORT=3000 или поменяйте порт в домене на 80.
Свой Caddyfile
Чтобы настроить заголовки, редиректы или кеширование, положите свой Caddyfile в корень проекта — он
заменит стандартный. Слушайте в нём :{$PORT:80}, чтобы порт по-прежнему задавался переменной.
Частые проблемы
Для SPA нужна отдача index.html на неизвестные пути: выберите результат сборки «Статический сайт» или
задайте index_fallback: true в Staticfile.
Railpack не распознал SPA. Выберите результат сборки «Статический сайт» и укажите каталог результата.