Cloudflare workersに静的なHTMLをデプロイする時は、.assetsignoreを使う

Cloudflare Workersに静的HTMLをデプロイする際、`.git`ディレクトリが含まれてエラーになる問題。解決策は`.assetsignore`ファイルを作成して除外設定を行うだけ。シンプルだけど見落としがちなポイントです。

広告ここから
広告ここまで

目次

    メンテする予定のないサイトは、サーバー側の処理を含まない純粋な純粋なHTML / CSS / JSファイルだけで構成された静的サイトにしたい。そして低コストかつ手軽に管理できる場所にリソースを集約したい。

    ということで、WordPressサイトを静的化した上で、Cloudflare Workersへデプロイすることを試してみました。今回は少しハマりどころがありましたので、簡単に紹介します。

    デプロイしたいサイトの例

    今回デプロイを試みたサイトは、完全な静的サイトです。Next.jsやHonoXなども使わず、純粋なHTML / CSS / JSファイルだけを管理している状態を想定しています。

    .
    ├── about
    ├── ads.txt
    ├── app-ads.txt
    ├── index.html
    ├── blog
    ├── category
    ...

    Workers Static Assetsでデプロイを試みる

    これをCloudflare WorkersでWrangler経由のデプロイにする場合、Static Assetsとしてデプロイするので、このような設定を行います。

    {
          "name": "example.com",
          "compatibility_date": "2025-10-07",
          "assets": {
            "directory": "./"
          }
    }

    しかし実はこの設定だけでは、デプロイがFailします。

    ルートディレクトリのデプロイは、Gitがデプロイに混ざる

    これは実際に試みたときのデプロイログです。Git ディレクトリにあるファイルをアップロードしようとして、ファイルサイズ制限に引っかかっていることがわかります。

    
    21:39:02.110    Executing user deploy command: npx wrangler deploy
    <中略>
    21:39:49.157    ✘ [ERROR] Asset too large.
    21:39:49.157    
    21:39:49.157      Cloudflare Workers supports assets with sizes of up to 25 MiB. We found a file /opt/buildhome/repo/.git/objects/pack/pack-548dc17900ff8749d800a3e41105ee7724aa07e7.pack with a size of 1.4 GiB.
    21:39:49.157      Ensure all assets in your assets directory "/opt/buildhome/repo" conform with the Workers maximum size requirement.
    21:39:49.157    

    assets.directory/にすることは通常あまりないのですが、仮に設定すると、このように.gitがデプロイ対象になってしまいます。

    デプロイ除外を設定する

    対策はとてもシンプルで、除外ファイルを追加するだけです。Cloudflare WorkersのStaic Assetsの場合除外設定は.assetsignoreを利用します。ここに、Gitなどの除外ファイルやディレクトリを指定してください。

    .git/
    node_modules/

    ちなみに生成AIはwrangler.jsoncassets.excludeという値を提案してきます。しかし調べてもそんなパラメータ、そんなものは2025/10時点でありませんでしたので注意してください。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark