跳到內容

Deploy your Astro Site to Cloudflare

本頁內容尚未翻譯。

You can deploy full-stack applications, including front-end static assets and back-end APIs, as well as on-demand rendered sites, to Cloudflare Workers.

Read more about using the Cloudflare runtime in your Astro project.

To get started, you will need:

  • A Cloudflare account. If you don’t already have one, you can create a free Cloudflare account during the process.
  1. Install Wrangler CLI.

    Terminal window
    npm install wrangler@latest --save-dev
  2. If your site uses on-demand rendering, install the @astrojs/cloudflare adapter.

    This will install the adapter and make the appropriate changes to your astro.config.mjs file in one step.

    Terminal window
    npx astro add cloudflare
    Read more about on-demand rendering in Astro.
  3. Create a Wrangler configuration file.

    Running astro add cloudflare will create this for you; if you are not using the adapter, you’ll need to create it yourself.

    wrangler.jsonc
    {
    "name": "my-astro-app",
    "compatibility_date": "YYYY-MM-DD", // Update to the day you deploy
    "assets": {
    "directory": "./dist",
    }
    }
  4. Preview your project locally with Wrangler.

    Terminal window
    npx astro build && npx wrangler dev
  5. Deploy using npx wrangler deploy.

    Terminal window
    npx astro build && npx wrangler deploy

After your assets are uploaded, Wrangler will give you a preview URL to inspect your site.

Read more about using Cloudflare runtime APIs such as bindings.

You can also use a CI/CD system such as Workers Builds to automatically build and deploy your site on push.

If you’re using Workers Builds:

  1. Follow Steps 1-3 from the Wrangler section above.

  2. Log in to the Cloudflare dashboard and navigate to Compute > Workers & Pages. Select Create application.

  3. Under Import a repository, select a Git account and then the repository containing your Astro project.

  4. Configure your project with:

    • Build command: npx astro build
    • Deploy command: npx wrangler deploy
  5. Click Save and Deploy. You can now preview your Worker at its provided workers.dev subdomain.

For Workers projects, you will need to set not_found_handling if you want to serve a custom 404 page. You can read more about this in the Routing behavior section of Cloudflare’s documentation.

wrangler.jsonc
{
"assets": {
"directory": "./dist",
"not_found_handling": "404-page"
}
}

Client-side hydration may fail as a result of Cloudflare’s Auto Minify setting. If you see Hydration completed but contains mismatches in the console, make sure to disable Auto Minify under Cloudflare settings.

If you are building a project that is using on-demand rendering with the Cloudflare adapter and the server fails to build with an error message such as [Error] Could not resolve "XXXX. The package "XXXX" wasn't found on the file system but is built into node.:

  • This means that a package or import you are using in the server-side environment is not compatible with the Cloudflare runtime APIs.

  • If you are directly importing a Node.js runtime API, please refer to the Astro documentation on Cloudflare’s Node.js compatibility for further steps on how to resolve this.

  • If you are importing a package that imports a Node.js runtime API, check with the author of the package to see if they support the node:* import syntax. If they do not, you may need to find an alternative package.

更多部署指南

貢獻 社群 贊助