← Cloudflare Workers / workers / configuration / sites
Začít od existujícího
Workers Sites vyžadují Wrangler ↗ : nezapomeňte použít nejnovější verze.
Chcete-li nasadit již existující projekt statického webu, začněte s předgenerovaným webem. Workers Sites funguje se všemi generátory statických webů, například:
- Hugo ↗
- Gatsby ↗, vyžaduje Node
- Jekyll ↗, vyžaduje Ruby
- Eleventy ↗, vyžaduje Node
- WordPress ↗ (viz návod na nasazování statických webů WordPress pomocí Pages)
Začínáme
-
Spustit
wrangler initpříkaz v kořenové složce projektu, kterým vygenerujete základní Worker:wrangler init -yTento příkaz přidá nebo aktualizuje následující soubory:
wrangler.jsonc: Soubor obsahující konfiguraci projektu.package.json: WranglerdevDependenciesse přidají.tsconfig.json: Přidáno, pokud tam ještě není, aby bylo možné psát Worker v TypeScriptu.src/index.ts: Základní Cloudflare Worker napsaný v TypeScriptu.
-
Přidejte adresář sestavení/výstupu svého webu do souboru Wrangler:
{ "site": { "bucket": "./public" // <-- Add your build directory name here. } }[site] bucket = "./public"Níže jsou uvedeny výchozí adresáře pro nejpoužívanější generátory statických webů:
- Hugo:
public - Gatsby:
public - Jekyll:
_site - Eleventy:
_site
- Hugo:
-
Nainstalujte
@cloudflare/kv-asset-handlerbalíček ve vašem projektu:npm i -D @cloudflare/kv-asset-handler -
Nahraďte obsah
src/index.tsnásledujícím úryvkem kódu:
import { getAssetFromKV } from "@cloudflare/kv-asset-handler";
import manifestJSON from "__STATIC_CONTENT_MANIFEST";
const assetManifest = JSON.parse(manifestJSON);
export default {
async fetch(request, env, ctx) {
try {
// Add logic to decide whether to serve an asset or run your original Worker code
return await getAssetFromKV(
{
request,
waitUntil: ctx.waitUntil.bind(ctx),
},
{
ASSET_NAMESPACE: env.__STATIC_CONTENT,
ASSET_MANIFEST: assetManifest,
},
);
} catch (e) {
let pathname = new URL(request.url).pathname;
return new Response(`"${pathname}" not found`, {
status: 404,
statusText: "not found",
});
}
},
};import { getAssetFromKV } from "@cloudflare/kv-asset-handler";
addEventListener("fetch", (event) => {
event.respondWith(handleEvent(event));
});
async function handleEvent(event) {
try {
// Add logic to decide whether to serve an asset or run your original Worker code
return await getAssetFromKV(event);
} catch (e) {
let pathname = new URL(event.request.url).pathname;
return new Response(`"${pathname}" not found`, {
status: 404,
statusText: "not found",
});
}
}-
Spustit
wrangler devnebonpx wrangler deploypro náhled nebo nasazení webu na Cloudflare. Wrangler automaticky nahraje assets nalezené v nakonfigurovaném adresáři.npx wrangler deploy -
Nasaďte svůj web na vlastní doména kterou vlastníte a kterou jste již připojili jako zónu Cloudflare. Přidejte
routevlastnost do souboru Wrangler.{ "route": "https://example.com/*" }route = "https://example.com/*"
Další informace o konfigurace vašeho projektu.