直接上传允许您将预构建资源上传到 Pages 并部署到 Cloudflare 全球网络。如果要集成自己的构建平台或从本地计算机上传,应选择直接上传而非 Git 集成。
本指南将指导您如何使用 Wrangler 或拖放方式上传资源。
在使用直接上传部署项目之前,请运行适当的构建命令来构建项目。
预构建资源准备好后,有两种上传方式:
以下是每种直接上传选项支持的文件类型:
- Wrangler:单个资源文件夹。(不支持 Zip 文件。)
- 拖放:Zip 文件或单个资源文件夹。
首先,安装 npm ↗。然后安装 Wrangler(Developer Platform CLI)。
使用 wrangler login 命令 登录 Wrangler。然后运行 pages project create 命令:
npx wrangler pages project create系统将提示您指定项目名称。项目将在 <PROJECT_NAME>.pages.dev 上提供服务(如果项目名称已被占用,则为项目名称加几个随机字符)。系统还会提示您指定生产分支。
后续部署将复用这两个值(保存在 node_modules/.cache/wrangler 文件夹中)。
此时,您已创建空项目,现在可以部署资源以进行首次部署以及生产环境中的所有后续部署。为此,请运行 wrangler pages deploy 命令:
npx wrangler pages deploy <BUILD_OUTPUT_DIRECTORY>在框架预设下的构建目录中查找项目的适当构建输出目录。
生产部署将在 <PROJECT_NAME>.pages.dev 上可用。
要将资源部署到预览环境,请运行:
npx wrangler pages deploy <OUTPUT_DIRECTORY> --branch=<BRANCH_NAME>对于创建的每个分支,您可以在 <BRANCH_NAME>.<PROJECT_NAME>.pages.dev 上使用分支别名。
如果希望简化项目创建与资源部署步骤,也可以使用 deploy 命令同时创建并部署资源。若首先执行此命令,仍会提示您指定项目名称和生产分支。如上所述,这些值仍会缓存以供后续部署使用。如果缓存已存在且您希望创建新项目,则需要运行 create 命令。
如果要使用 Wrangler 获取直接上传所有可用项目的列表,请使用 pages project list:
npx wrangler pages project list要以 JSON 格式输出用于编程或脚本,请使用 --json 标志:
npx wrangler pages project list --json如果要使用 Wrangler 获取特定项目的所有唯一预览 URL 列表,请使用 pages deployment list:
npx wrangler pages deployment list有关如何将 Wrangler 与 GitHub Actions、Circle CI 和 Travis CI 等持续集成工具一起用于持续部署的分步说明,请参阅将 Direct Upload 与持续集成一起使用。
要使用拖放部署:
-
在 Cloudflare 仪表板中,前往 Workers & Pages 页面。
Go to Workers & Pages ↗ -
选择 Create application(创建应用) > Get started(开始使用) > Drag and drop your files(拖放文件)。
-
在提供的字段中输入项目名称并拖放资源。
-
选择 Deploy site(部署站点)。
项目将从 <PROJECT_NAME>.pages.dev 提供服务。接下来将构建输出目录拖放到上传框中。文件成功上传后,选择 Save and Deploy(保存并部署) 并继续访问新部署的项目。
创建项目后,选择 Create a new deployment(创建新部署) 开始站点的新版本。接下来,选择新部署是部署到生产环境还是预览环境。如果选择预览,可以创建新的部署分支或输入现有分支。
| 上传方式 | 文件数量限制 | 文件大小 |
|---|---|---|
| Wrangler | 20,000 files | 25 MiB |
| 拖放 | 1,000 files | 25 MiB |
如果使用拖放方式,资源过大导致上传失败时,资源旁会出现红色警告符号。此时,你可以选择删除该资源,但无法替换。要替换,必须重新上传整个项目。
如果项目是 Direct Upload 项目,你将无法配置生产分支控制。要更新生产分支,需要手动调用 API 中的 Update Project 端点。
curl --request PATCH \
"https://api.cloudflare.com/client/v4/accounts/{account_id}/pages/projects/{project_name}" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data "{\"production_branch\": \"main\"}"目前,从 Cloudflare 仪表板进行的拖放部署不支持编译 Pages Functions 的 functions 文件夹。要部署 functions 文件夹,必须使用 Wrangler。使用 Wrangler 部署项目时,如果运行命令的位置存在 functions 文件夹,该 functions 文件夹将与项目一起上传。
但请注意,Wrangler 和从仪表板进行的拖放部署都支持 _worker.js 文件。