← Cloudflare Workers / workers / framework-guides / web-apps
Astro
Začít z CLI: Vytvořte základ projektu Astro na Workers a vyberte si šablonu.
npm create cloudflare@latest -- my-astro-app --framework=astroNebo jen nasaďte: Vytvořte statický blog pomocí Astro a nasaďte ho na Cloudflare Workers, včetně předem nastaveného CI/CD a náhledů.
Co je Astro?
Astro ↗ je JavaScriptový webový framework určený pro tvorbu webů zobrazujících velké množství obsahu (například blogy, dokumentační weby nebo online obchody).
Astro klade důraz na výkon díky minimálnímu množství JavaScriptu na straně klienta: ve výchozím nastavení vykresluje co nejvíce obsahu už při buildu, nebo na vyžádání ↗ na "serveru": tím může být Cloudflare Worker. “Ostrovy” ↗ JavaScriptu se přidávají pouze tam, kde je potřeba interaktivita nebo personalizace.
Astro je zároveň nezávislé na frameworku a podporuje všechny hlavní UI frameworky, včetně React, Preact, Svelte, Vue a SolidJS, prostřednictvím svého oficiálního integrace ↗.
Nasaďte nový projekt Astro na Workers
-
Vytvořte nový projekt pomocí create-cloudflare CLI (C3).
npm create cloudflare@latest -- my-astro-app --framework=astroCo se děje v zákulisí?
Když spustíte tento příkaz, C3 vytvoří nový adresář projektu, zahájí Oficiální nástroj Astro pro nastavení ↗, a nakonfiguruje projekt pro Cloudflare. Poté nabídne možnost okamžitě nasadit vaši aplikaci na Cloudflare.
-
Vývoj lokálně.
Po vytvoření projektu spusťte v adresáři projektu následující příkaz, který spustí lokální vývojový server.
npm run dev -
Nasaďte svůj projekt.
Svůj projekt můžete nasadit do
*.workers.devsubdoména nebo vlastní doména z vašeho lokálního počítače nebo libovolného systému CI/CD (včetně Workers Builds). Sestavení a nasazení proveďte pomocí následujícího příkazu. Pokud používáte službu CI, nezapomeňte odpovídajícím způsobem upravit svůj "deploy command".npm run deploy
Nasaďte existující projekt Astro na Workers
Manuální konfigurace
Pokud chcete projekt nakonfigurovat ručně, postupujte podle následujících kroků.
Pokud máte statický web
Pokud je váš projekt Astro celý předrenderovaný, postupujte takto:
-
Přidání konfiguračního souboru Wrangler
V kořenovém adresáři projektu vytvořte konfigurační soubor Wrangler s následujícím obsahem:
{ "name": "my-astro-app", // Set this to today's date "compatibility_date": "2026-08-28", "assets": { "directory": "./dist" } }name = "my-astro-app" # Set this to today's date compatibility_date = "2026-08-28" [assets] directory = "./dist"Co dělá tato konfigurace?
Klíčovou částí této konfigurace je
assetspole, které Wrangleru říká, kde má hledat vaše statická aktiva. V tomto případě Wrangleru říkáme, aby hledal ve složce./distadresář. Pokud se vaše aktiva nacházejí v jiném adresáři, aktualizujtedirectoryhodnotu podle toho. Přečtěte si o dalších možnosti konfigurace pro assets.Všimněte si také, že zde není žádné
mainpole v této konfiguraci, protože obsluhujete jen statické assety, takže pro rendering na vyžádání (SSR) není kód Workeru potřeba. -
Vytvořte a nasaďte svůj projekt
Svůj projekt můžete nasadit do
*.workers.devsubdoména nebo vlastní doména z vašeho lokálního počítače nebo libovolného systému CI/CD (včetně Workers Builds). Sestavení a nasazení proveďte pomocí následujícího příkazu. Pokud používáte službu CI, nezapomeňte odpovídajícím způsobem upravit svůj "deploy command".npx astro buildnpx wrangler@latest deploy
Pokud váš web používá vykreslování na vyžádání
Pokud váš projekt Astro používá vykreslování na vyžádání (známé také jako SSR) ↗, postupujte takto:
-
Nainstalujte adaptér Astro Cloudflare
npx astro add cloudflareCo se děje v zákulisí?
Tento příkaz nainstaluje adaptér Cloudflare a provede příslušné změny ve vašem
astro.config.mjssoubor v jednom kroku. Ve výchozím nastavení se tím konfigurace výstupu sestavení nastaví naoutput: 'server', který ve výchozím nastavení vykresluje všechny vaše stránky na serveru. Pokud existují určité stránky, které ne nevyžadují rendrování na vyžádání (SSR), například statické stránky jako zásady ochrany osobních údajů, měli byste nastavitexport const prerender = truepro danou stránku nebo trasu a předvykreslit ji. Více o možnostech konfigurace adaptéru se dozvíte v dokumentaci Astro ↗. -
Přidejte
.assetsignoresoubor Vytvořte.assetsignoresoubor vpublic/složku a přidejte do ní následující řádky:.assetsignore_worker.js _routes.json -
Přidání konfiguračního souboru Wrangler
V kořenovém adresáři projektu vytvořte konfigurační soubor Wrangler s následujícím obsahem:
{ "name": "my-astro-app", "main": "./dist/_worker.js/index.js", // Update to today's date // Set this to today's date "compatibility_date": "2026-08-28", "compatibility_flags": ["nodejs_compat"], "assets": { "binding": "ASSETS", "directory": "./dist" }, "observability": { "enabled": true } }name = "my-astro-app" main = "./dist/_worker.js/index.js" # Set this to today's date compatibility_date = "2026-08-28" compatibility_flags = [ "nodejs_compat" ] [assets] binding = "ASSETS" directory = "./dist" [observability] enabled = trueCo dělá tato konfigurace?
Klíčové části této konfigurace jsou:
mainodkazuje na vstupní bod vašeho skriptu Worker. Generuje ho adaptér Astro a pohání jím vaše stránky vykreslované na serveru.assets.directoryříká Wrangleru, kde má hledat statické assety. V tomto případě Wrangleru říkáme, aby se podíval do./distadresář. Pokud se vaše aktiva nacházejí v jiném adresáři, aktualizujtedirectoryhodnotu podle toho.
Přečtěte si více o Možnosti konfigurace Wrangleru a možnosti konfigurace pro assets.
-
Vytvořte a nasaďte svůj projekt
Svůj projekt můžete nasadit do
*.workers.devsubdoména nebo vlastní doména z vašeho lokálního počítače nebo libovolného systému CI/CD (včetně Workers Builds). Sestavení a nasazení proveďte pomocí následujícího příkazu. Pokud používáte službu CI, nezapomeňte odpovídajícím způsobem upravit svůj "deploy command".npx astro buildnpx wrangler@latest deploy
Bindings
Díky bindings lze vaši aplikaci Astro plně integrovat s Cloudflare Developer Platform a získat tak přístup k výpočetnímu výkonu, úložišti, AI a dalším službám. Viz přehled vazeb další informace o tom, co je k dispozici a jak to nakonfigurovat.
Dokumentace Astro ↗ poskytuje informace o tom, jak k nim můžete přistupovat ve svém locals.
Relace
Astro Sessions API ↗ umožňuje ukládat uživatelská data mezi jednotlivými požadavky, například uživatelská nastavení, obsah nákupního košíku nebo přihlašovací údaje. Při použití adaptéru Cloudflare Astro automaticky nakonfiguruje Workers KV pro ukládání relací.
Wrangler automaticky vytvoří KV namespace s názvem SESSION při nasazení, takže není nutné žádné ruční nastavení.
---
export const prerender = false;
const cart = await Astro.session?.get("cart");
---
<a href="/checkout">{cart?.length ?? 0} items</a>Název KV bindingu můžete přizpůsobit pomocí sessionKVBindingName ↗ volbu adaptéru, pokud chcete použít jiný název bindingu.
Vlastní stránky 404
Chcete-li pro svůj web Astro zobrazovat vlastní stránku 404, přidejte not_found_handling do konfigurace Wrangler:
{
"assets": {
"directory": "./dist",
"not_found_handling": "404-page"
}
}[assets]
directory = "./dist"
not_found_handling = "404-page"Toto řekne Cloudflare, aby doručil vaši vlastní 404 stránku (například src/pages/404.astro) když se nenajde žádná route. Více se dozvíte v chování směrování statických aktiv.
Konfigurace buildu Astro
Adaptér Astro pro Cloudflare nastavuje konfiguraci výstupu sestavení na output: 'server', což znamená, že všechny stránky se vykreslují na vyžádání ve vašem Cloudflare Workeru. Pokud existují určité stránky, které ne nevyžadují rendrování na vyžádání (SSR), například statické stránky, jako jsou zásady ochrany osobních údajů, měli byste nastavit export const prerender = true pro danou stránku nebo route, aby se předrenderovala. Více o on-demand rendering se dozvíte v dokumentaci Astro ↗.
Pokud chcete Astro používat jako generátor statických webů, adaptér Astro Cloudflare nepotřebujete. Astro standardně předrenderuje všechny stránky již při sestavení a tyto statické soubory pak stačí nahrát, aby je doručovala Cloudflare.
Požadavky na Node.js
Astro 5.x podporuje Node.js 18.20.8, Node.js 20.3.0 a novější verze řady 20.x nebo Node.js 22.0.0 a novější. Astro 6.x a 7.x vyžadují Node.js 22.12.0 nebo novější. Pokud používáte Workers Builds, jeho výchozí verze Node.js tyto požadavky splňuje. Pokud výchozí verzi přepíšete, zvolte verzi, která splňuje Požadavky Astro na Node.js ↗.