跳转到内容

将你的 Astro 网站部署到 Cloudflare

你可以将全栈应用程序(包括前端静态资源和后端 API)以及按需渲染的网站部署到 Cloudflare WorkersCloudflare Pages

本指南包括

阅读更多关于在你的 Astro 项目中使用 Cloudflare 运行时的内容。

在开始之前,你需要准备好:

  • 一个 Cloudflare 帐户。如果你还没有,可以在此过程中创建一个免费的 Cloudflare 帐户。
  1. 安装 Wrangler CLI

    终端窗口
    npm install wrangler@latest --save-dev
  2. 如果你的网站使用按需渲染,请安装 @astrojs/cloudflare 适配器

    这将会一步到位地安装适配器并对你的 astro.config.mjs 文件进行适当的更改。

    终端窗口
    npx astro add cloudflare

    然后,在你的 public/ 文件夹中创建一个 .assetsignore 文件,并向其中添加以下行

    public/.assetsignore
    _worker.js
    _routes.json
    在 Astro 中阅读更多关于按需渲染的内容。
  3. 创建一个 Wrangler 配置文件

    wrangler.jsonc
    {
    "$schema": "node_modules/wrangler/config-schema.json",
    "name": "my-astro-app",
    // Update to today's date
    "compatibility_date": "2025-03-25",
    "assets": {
    "directory": "./dist",
    "not_found_handling": "404-page" // If you have a custom `src/pages/404.astro` page
    }
    }
  4. 使用 Wrangler 在本地预览你的项目。

    终端窗口
    npx astro build && npx wrangler dev
  5. 使用 npx wrangler deploy 进行部署。

    终端窗口
    npx astro build && npx wrangler deploy

在你的资源上传后,Wrangler 会给你一个预览 URL 来检查你的网站。

阅读更多关于使用 Cloudflare 运行时 API(例如绑定)的内容。

你也可以使用 CI/CD 系统,例如 Workers Builds (BETA),在推送时自动构建和部署你的网站。

如果你正在使用 Workers Builds

  1. 按照上面 Wrangler 部分的步骤 1-3 操作。

  2. 登录 Cloudflare 仪表盘并导航到 Workers & Pages。选择 Create

  3. Import a repository 下,选择一个 Git 帐户,然后选择包含你的 Astro 项目的仓库。

  4. 使用以下配置你的项目

    • 构建命令:npx astro build
    • 部署命令:npx wrangler deploy
  5. 点击 Save and Deploy。现在你可以在它提供的 workers.dev 子域上预览你的 Worker。

  1. 安装 Wrangler CLI

    终端窗口
    npm install wrangler@latest --save-dev
  2. 如果你的网站使用按需渲染,请安装 @astrojs/cloudflare 适配器

    这将会一步到位地安装适配器并对你的 astro.config.mjs 文件进行适当的更改。

    终端窗口
    npx astro add cloudflare
    在 Astro 中阅读更多关于按需渲染的内容。
  3. 使用 Wrangler 在本地预览你的项目。

    终端窗口
    npx astro build && npx wrangler pages dev ./dist
  4. 使用 npx wrangler deploy 进行部署。

    终端窗口
    npx astro build && npx wrangler pages deploy ./dist

在你的资源上传后,Wrangler 会给你一个预览 URL 来检查你的网站。

  1. 将你的代码推送到你的 git 仓库(例如 GitHub、GitLab)。

  2. 登录 Cloudflare 仪表盘并导航到 Compute (Workers) > Workers & Pages。选择 Create,然后选择 Pages 选项卡。连接你的 git 仓库。

  3. 使用以下配置你的项目

    • 框架预设Astro
    • 构建命令: npm run build
    • 构建输出目录: dist
  4. 点击 Save and Deploy 按钮。

由于 Cloudflare 的 Auto Minify(自动压缩)设置,客户端激活可能会失败。如果你在控制台中看到 Hydration completed but contains mismatches,请确保在 Cloudflare 设置中禁用 Auto Minify。

如果你正在构建一个使用 Cloudflare 适配器进行按需渲染的项目,并且服务器构建失败,并出现类似 [Error] Could not resolve "XXXX. The package "XXXX" wasn't found on the file system but is built into node. 的错误消息

  • 这意味着你在服务器端环境中使用的包或导入与 Cloudflare 运行时 API 不兼容。

  • 如果你直接导入 Node.js 运行时 API,请参阅 Astro 文档中关于 Cloudflare 的 Node.js 兼容性部分,以获取解决此问题的进一步步骤。

  • 如果你正在导入一个导入了 Node.js 运行时 API 的包,请与该包的作者确认他们是否支持 node:* 导入语法。如果不支持,你可能需要寻找替代的包。

更多部署指南

贡献 社区 赞助