JS
#astro#ssr#ssg#hybrid#prerender#adapter#config

Astro: output hybrid и prerender

Настройка режима рендеринга: static, server, hybrid. Пример hybrid с adapter и выборочным prerender = false для страницы.

Как использовать

  1. Скопируйте нужный фрагмент кода.
  2. Вставьте в свой проект и при необходимости измените под задачу.
  3. Проверьте зависимости и окружение (версии, переменные).

Astro поддерживает три режима: static (по умолчанию), server (всё on-demand), hybrid (по умолчанию SSG, отдельные страницы — SSR через prerender = false). Для server и hybrid нужен adapter.

Режим Hybrid (On-demand rendering):

// astro.config.mjs
import { defineConfig } from "astro/config";
import node from "@astrojs/node";

export default defineConfig({
  output: "hybrid",
  adapter: node(),
});

Страница с SSR (рендер по запросу):

---
// src/pages/dashboard.astro
export const prerender = false;
---

<h1>Динамический контент: {new Date().toLocaleString()}</h1>

Режим полностью статический (без adapter):

// astro.config.mjs
import { defineConfig } from "astro/config";

export default defineConfig({
  output: "static", // можно не указывать — значение по умолчанию
});

Режим полностью серверный:

// astro.config.mjs
import { defineConfig } from "astro/config";
import node from "@astrojs/node";

export default defineConfig({
  output: "server",
  adapter: node({ mode: "standalone" }),
});

Usage:

  • static — все страницы генерируются при build, подходит для блогов и лендингов.
  • server — все страницы и endpoints рендерятся по запросу; нужен хостинг с Node или адаптер (Netlify, Vercel и т.д.).
  • hybrid — большинство страниц статически, для нужных страниц в frontmatter укажи export const prerender = false.

Notes:

⚠️ При output: "hybrid" или "server" обязательно укажи adapter в конфиге. Для вызова Actions из HTML-формы страница должна быть on-demand (prerender = false или режим server).