INTEGRITY Dokumentace

Migrace z Pages na Workers

Full-stack aplikace, včetně statických front-end assets a back-end API i stránek vykreslovaných na straně serveru (SSR), můžete nasadit pomocí Cloudflare Workers.

Stejně jako u Pages jsou požadavky na statické prostředky ve Workers zdarma a Pages Functions volání jsou účtována stejnou sazbou jako Workers, takže můžete očekávat podobnou nákladovou strukturu.

Na rozdíl od Pages má Workers k dispozici výrazně širší sadu funkcí (včetně Durable Objects, Cron Triggers a komplexnější Observability). Úplný seznam najdete na dolní části této stránky.

Migrace

Migrace z Cloudflare Pages na Cloudflare Workers bývá většinou přímočará. Níže jsou uvedeny nejčastější kroky, které při migraci projektu obvykle budete potřebovat.

Frameworky

Pokud váš projekt Pages používá oblíbený framework, většina frameworků již má k dispozici adaptéry pro Cloudflare Workers. Nahraďte veškeré adaptéry určené pro Pages jejich ekvivalenty pro Workers a řiďte se pokyny, které poskytují.

Konfigurace projektu

Pokud jej váš projekt ještě nemá, vytvořte Konfigurační soubor Wrangler (buď wrangler.jsonc, wrangler.json nebo wrangler.toml) v kořenovém adresáři vašeho projektu. Dvě povinná pole jsou:

Výstupní adresář sestavení

Tam, kde jste dříve pro Pages konfigurovali „adresář výstupu sestavení“ (buď v Konfigurační soubor Wrangler nebo v Cloudflare dashboard), nyní musíte nastavit assets.directory hodnota pro projekt Worker.

Dříve, s Cloudflare Pages:

{
	"name": "my-pages-project",
	"pages_build_output_dir": "./dist/client/"
}
name = "my-pages-project"
pages_build_output_dir = "./dist/client/"

Nyní s Cloudflare Workers:

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"assets": {
		"directory": "./dist/client/"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"

[assets]
directory = "./dist/client/"

Chování při obsluze

Pages se automaticky pokusí určit typ nasazeného projektu. Vyhledá přitom 404.html a index.html soubory jako signál toho, zda šlo pravděpodobně o Jednostránková aplikace (SPA) nebo zda by měl vracet vlastní stránky 404.

Ve Workers je toto chování kvůli prevenci náhodné chybné konfigurace explicitní a musí být nastaveno ručně.

Pro Single Page Application (SPA):

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"assets": {
		"directory": "./dist/client/",
		"not_found_handling": "single-page-application"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"

[assets]
directory = "./dist/client/"
not_found_handling = "single-page-application"

Pro vlastní stránky 404:

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"assets": {
		"directory": "./dist/client/",
		"not_found_handling": "404-page"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"

[assets]
directory = "./dist/client/"
not_found_handling = "404-page"
Ignorování assets

Pages automaticky vyloučí některé soubory a složky z nahrávání jako statická aktiva, například node_modules, .DS_Store, a .git. Pokud chcete zabránit i nahrávání těchto souborů do Workers, můžete vytvořit .assetsignore soubor v adresáři statických assetů vašeho projektu.

dist/client/.assetsignore
**/node_modules
**/.DS_Store
**/.git

Pages Functions

Full-stack framework

Pokud používáte fullstack framework postavený na Pages Functions, ujistěte se, že máte aktualizovali jste svůj framework pro cílení na Workers namísto Pages.

Pages Functions s „advanced mode“ _worker.js soubor

Pokud používáte Pages Functions s "advanced mode" _worker.js soubor, nejprve musíte zajistit, že se tento skript nenahraje jako statický asset. Buď přesuňte _worker.js z adresáře se statickými soubory (doporučeno), nebo vytvořit .assetsignore soubor v adresáři statických assetů a zahrnout _worker.js v jeho rámci.

dist/client/.assetsignore
_worker.js

Poté ve svém konfiguračním souboru aktualizujte main pole tak, aby ukazovalo na umístění tohoto skriptu Workeru:

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"main": "./dist/client/_worker.js", // or some other location if you moved the script out of the static asset directory
	"assets": {
		"directory": "./dist/client/"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
main = "./dist/client/_worker.js"

[assets]
directory = "./dist/client/"
Pages Functions s functions/ složka

Pokud používáte Pages Functions s složka functions/, nejprve musíte tyto funkce zkompilovat do jednoho skriptu Workeru pomocí wrangler pages functions build příkazu.

npx wrangler pages functions build --outdir=./dist/worker/

Ačkoli tento příkaz zůstane k dispozici a budete jej moci spustit kdykoli, doporučujeme zvážit použití jiného frameworku, pokud chcete pokračovat v používání směrování založeného na souborech. HonoX je jednou z oblíbených možností.

Jakmile je skript Workeru zkompilovaný, můžete v konfiguračním souboru aktualizovat main pole tak, aby ukazovalo na umístění, do kterého byl sestaven:

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"main": "./dist/worker/index.js",
	"assets": {
		"directory": "./dist/client/"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
main = "./dist/worker/index.js"

[assets]
directory = "./dist/client/"
_routes.json a middleware Pages Functions

Pokud jste vytvořili _routes.json soubor ve vašem projektu Pages, nebo použili middleware v Pages Functions musíte věnovat velkou pozornost konfiguraci svého Worker skriptu. Pages by ve výchozím nastavení obsluhovaly vaše Pages Functions přednostně před statickými assety a _routes.json a middleware Pages Functions vám umožňovaly toto chování přizpůsobit.

Workers naopak ve výchozím nastavení obsluhují statická aktiva před vaším skriptem Workeru, pokud jste nenakonfigurovali assets.run_worker_first. Tato možnost je povinná, pokud například před poskytnutím statických souborů provádíte ověřovací kontroly nebo logujete požadavky.

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"main": "./dist/worker/index.js",
	"assets": {
		"directory": "./dist/client/",
		"run_worker_first": true
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
main = "./dist/worker/index.js"

[assets]
directory = "./dist/client/"
run_worker_first = true
Začínáme od nuly

Pokud chcete, můžete začít se skriptem Workeru úplně od začátku a využít všechny funkce Wrangleru a nejnovějšího runtime (například WorkerEntrypoints, Podpora TypeScript, bundling, atd.):

./worker/index.js
import { WorkerEntrypoint } from "cloudflare:workers";

export default class extends WorkerEntrypoint {
	async fetch(request) {
		return new Response("Hello, world!");
	}
}
./worker/index.ts
import { WorkerEntrypoint } from "cloudflare:workers";

export default class extends WorkerEntrypoint {
	async fetch(request: Request) {
		return new Response("Hello, world!");
	}
}
{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"main": "./worker/index.ts",
	"assets": {
		"directory": "./dist/client/"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
main = "./worker/index.ts"

[assets]
directory = "./dist/client/"

Vazba Assets

Pages automaticky poskytuje ASSETS binding pro přístup ke statickým assets z Pages Functions. Ve Workers je název tohoto bindingu upravitelný a musí být nakonfigurován ručně:

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"main": "./worker/index.ts",
	"assets": {
		"directory": "./dist/client/",
		"binding": "ASSETS"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
main = "./worker/index.ts"

[assets]
directory = "./dist/client/"
binding = "ASSETS"

Runtime

Pokud jste si upravili umístění, nebo nastavte compatibility date nebo jakýkoli compatibility flags ve vašem projektu Pages, totéž můžete definovat v konfiguračním souboru Wrangler:

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"compatibility_flags": ["nodejs_compat"],
	"main": "./worker/index.ts",
	"placement": {
		"mode": "smart"
	},
	"assets": {
		"directory": "./dist/client/",
		"binding": "ASSETS"
	}
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
compatibility_flags = [ "nodejs_compat" ]
main = "./worker/index.ts"

[placement]
mode = "smart"

[assets]
directory = "./dist/client/"
binding = "ASSETS"

Proměnné, tajné klíče a vazby

Proměnné a vazby lze nastavit v Konfigurační soubor Wrangler a jsou zpřístupněny v prostředí vašeho Workeru (env). Tajné klíče lze nahrát přes Wrangler nebo definovat v Cloudflare dashboardu pro produkce a .dev.vars pro lokální vývoj.

Pokud jste používání Workers Builds, nezapomeňte také tam nakonfigurujte všechny proměnné relevantní pro sestavovací prostředí. Na rozdíl od Pages nesdílí Workers stejnou sadu proměnných pro runtime a build.

Příkazy Wrangleru

Tam, kde jste dříve používali wrangler pages dev a wrangler pages deploy, nyní místo toho použijte wrangler dev a wrangler deploy. Pokud navíc používáte framework postavený na Vite, náš nový Vite plugin vám může nabídnout ještě jednodušší vývojářský zážitek.

Builds

Pokud používáte vestavěný CI/CD systém Pages, můžete jej nahradit Workers Builds tak, že nejprve připojení vašeho repozitáře k Workers Builds a poté vypnutí automatického nasazování v projektu Pages.

Náhledové prostředí

Pages automaticky vytváří náhledové prostředí pro každý projekt a lze je nakonfigurovat nezávisle.

Chcete-li dosáhnout podobného chování ve Workers, musíte:

  1. Zajistěte, že URL náhledů jsou povoleny (ve výchozím nastavení jsou zapnuté).

    {
    	"name": "my-worker",
    	// Set this to today's date
    	"compatibility_date": "2026-08-28",
    	"main": "./worker/index.ts",
    	"assets": {
    		"directory": "./dist/client/"
    	},
    	"preview_urls": true
    }
    name = "my-worker"
    # Set this to today's date
    compatibility_date = "2026-08-28"
    main = "./worker/index.ts"
    preview_urls = true
    
    [assets]
    directory = "./dist/client/"
  2. Povolit sestavení pro neprodukční větve ve Workers Builds.

Volitelně můžete také chraňte tyto URL náhledů pomocí Cloudflare Access.

Hlavičky a přesměrování

_headers a _redirects soubory jsou ve Workers se statickými prostředky podporovány nativně. Stejně jako u Pages zajistěte, aby tyto soubory byly součástí adresáře se statickými prostředky vašeho projektu.

pages.dev

Tam, kde vám bylo dříve nabízeno pages.dev subdoménu pro váš projekt Pages si nyní můžete nastavit personalizovanou workers.dev subdoménu pro všechny své projekty Worker. Můžete nakonfigurujte tuto subdoménu v Cloudflare dashboardu, a přihlásit se k jejímu použití pomocí workers_dev možnost ve vašem konfiguračním souboru.

{
	"name": "my-worker",
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"main": "./worker/index.ts",
	"workers_dev": true
}
name = "my-worker"
# Set this to today's date
compatibility_date = "2026-08-28"
main = "./worker/index.ts"
workers_dev = true

Vlastní domény

Pokud jsou nameservery vaší domény spravované přes Cloudflare, můžete stejně jako u Pages nakonfigurovat vlastní doména pro váš Worker. Kromě toho můžete také nakonfigurovat trasa pokud chcete, aby váš Worker obsluhoval jen podmnožinu cest.

Rollout

Jakmile ověříte chování Workeru, budete spokojeni s vývojovými postupy a přesunete veškerý produkční provoz, můžete svůj projekt Pages smazat v Cloudflare dashboardu nebo pomocí Wrangleru:

npx wrangler pages project delete

Migrujte svůj projekt pomocí AI asistenta pro psaní kódu

Můžete přidat následující experimentální prompt ve vašem preferovaném asistentovi pro psaní kódu (např. Claude Code, Cursor), abyste svůj projekt zkompatibilnili s Workers:

https://developers.cloudflare.com/workers/prompts/pages-to-workers.txt

Můžete také použít Cloudflare Documentation server MCP ve vašem asistentovi pro psaní kódu, abyste svému LLM poskytli lepší kontext při vývoji s Workers, což zahrnuje tento prompt, když požádáte o migraci z Pages na Workers.

Tabulka kompatibility

Tato tabulka kompatibility porovnává funkce Workers a Pages. Není-li níže uvedeno jinak, platí, že co funguje v Pages, funguje i ve Workers, a co funguje ve Workers, funguje i v Pages. Chybí vám v tomto seznamu něco? Otevřete pull request nebo vytvořte GitHub issue.

Legenda
✅: Podporováno
⏳: Již brzy
🟡: Nepodporováno, řešení k dispozici
❌: Nepodporováno

Workers Pages
Psaní, testování a nasazování kódu
Cloudflare Vite plugin
Vrácení zpět
Gradual Deployments
Preview URLs
Testovací nástroje
Lokální vývoj
Vzdálený vývoj (--remote)
Quick Editor v Dashboardu
Static Assets
Early Hints 🟡 1
Vlastní hlavičky HTTP pro statická aktiva
Middleware 2
Přesměrování
Smart Placement
Poskytování assets na cestě
Observabilita
Workers Logs
Logpush
Tail Workers
Logy v reálném čase
Zdrojové mapy
Runtime API a výpočetní modely
Režim kompatibility s Node.js
Durable Objects 🟡 3
Cron Triggers
Bindings
AI
Analytics Engine
Assets
Browser Run
D1
Email Workers
Proměnné prostředí
Hyperdrive
Změna velikosti obrázků
KV
mTLS
Queue Producers
Queue Consumers
R2
Rate Limiting
Tajné klíče
Service bindings
Vectorize
Builds (CI/CD)
Monorepa
Sledované cesty sestavení
Cache buildů
Deploy Hooks
Řízení nasazení podle větví 🟡 4
Custom Branch Aliases
Pages Functions
Směrování založené na souborech 🟡 5
Pages Plugins 🟡 6
Konfigurace domény
Vlastní domény
Vlastní subdomény
Vlastní domény mimo zóny Cloudflare
Nekořenové trasy

Poznámky pod čarou

  1. Workers mohou využívat Early Hints, pokud je zapnuté příslušné nastavení zóny. Váš Worker musí odeslat odpovídající Link hlavičky. Více informací najdete v 103 Early Hints příklad.

  2. Middleware lze nakonfigurovat pomocí run_worker_first možnost, ale účtuje se jako běžné volání Workeru. V budoucnu plánujeme prozkoumat další související možnosti.

  3. Chcete-li používat Durable Objects s projektem Cloudflare Pages, musíte vytvořit samostatný Worker s Durable Object a poté deklarovat vazbu na něj v prostředí Production i Preview. Použití Durable Objects s Workers je jednodušší a doporučuje se.

  4. Workers Builds podporují povolení sestavení neprodukčních větví, i když zatím nenabízí stejnou úroveň konfigurovatelnosti jako Pages.

  5. Workers podporuje oblíbené frameworky, z nichž mnohé implementují směrování založené na souborech. Kromě toho můžete pomocí Wrangleru zkompiluje vaši složku functions/ do Workeru, aby usnadnil migraci z Pages na Workers.

  6. Stejně jako v 5, Wrangler umí zkompiluje vaše Pages Functions do Workeru. Nebo pokud začínáte od nuly, vše, co je možné s Pages Functions, můžete dosáhnout i přidáním kódu do svého Workeru nebo pomocí pluginů specifických pro daný framework od relevantních třetích stran.