コンテンツにスキップ

Workerから始める

Workers SitesはWranglerを必要とします — 最新バージョンを使用していることを確認してください。

既存のWorkerプロジェクトがある場合、Workers Sitesを使用してWorkerに静的アセットを提供できます。

始め方

  1. プロジェクトのルートにアセットを含むディレクトリを作成します(例: ./public

  2. wrangler.tomlファイルにそのディレクトリを指す設定を追加します。

    [site]
    bucket = "./public" # 静的アセットを含むディレクトリを追加してください!
  3. プロジェクトに@cloudflare/kv-asset-handlerパッケージをインストールします:

    Terminal window
    npm i -D @cloudflare/kv-asset-handler
  4. WorkerのエントリポイントにgetAssetFromKV()関数をインポートし、静的アセットで応答するために使用します。

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 {
// アセットを提供するか、元のWorkerコードを実行するかを決定するロジックを追加します
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}" が見つかりません`, {
status: 404,
statusText: "見つかりません",
});
}
},
};

getAssetFromKV()の設定可能なオプションに関する詳細はkv-asset-handlerのドキュメントを参照してください。

  1. 通常通りにwrangler deployまたはnpx wrangler deployを実行します。Wranglerは設定されたディレクトリ内のアセットを自動的にアップロードします。

    Terminal window
    npx wrangler deploy