AI + 人协同 SOP

新人 AI 工作 SOP:使用 Cloudflare Pages 部署网站

面向使用 AI 但不懂代码的新手。跟着点就能上线,遇到问题有 AI 帮忙排查。基于真实部署经验整理。

版本 v2.0 更新 2026-07-14 适用 零基础新手 方式 AI + 人协同操作

目录

  1. 适用场景与前置条件
  2. 网络环境说明(重要)
  3. 部署前准备
  4. 前端部署到 Cloudflare Pages
  5. 后端部署到 Railway
  6. 配置 API 代理(让国内用户能访问后端)
  7. 部署后检查事项
  8. 常见问题与解决方式
  9. 给 AI 的提问模板
  10. 后续维护
  11. 流程总结

一、适用场景与前置条件

当我们已经有网站项目代码,并且代码已经上传到 GitHub 仓库时,可以使用本 SOP 完成网站部署上线。

适用场景

前置条件

条件说明是否必须
GitHub 账号代码已上传到 GitHub 仓库必须
Cloudflare 账号用于部署前端和 API 代理必须
Railway 账号用于部署后端(仅全栈网站需要)有后端时必须
代理工具(VPN)注册和配置海外平台时需要必须(见第二章)
AI 工具遇到问题随时让 AI 帮忙强烈建议
核心理念:你不需要懂代码,只需要会"跟着点 + 遇到问题截图发给 AI"。技术判断交给 AI,操作交给你。

二、网络环境说明(重要)

这是新手最容易忽略的一步:不同平台在国内的访问情况不同。不提前了解,会导致"明明配置对了但就是打不开"。

平台国内访问情况

平台国内状态用途
Cloudflare Pages直连可用前端托管 + API 代理
DeepSeek API直连可用AI 大模型
GitHub不稳定代码仓库
Cloudflare 控制台建议开代理配置部署
Railway被墙后端托管
Vercel被墙不要用

什么时候开代理,什么时候关?

操作需要代理?说明
注册 GitHub / Cloudflare / Railway需要开注册页面需要验证,国内直连可能卡住
使用 Cloudflare 控制台建议开页面加载更稳定
推送代码到 GitHub看情况大部分时间可用,断连时开代理
用户访问你的网站不需要网站在 Cloudflare 上,国内直连
记住这句话:开发和配置阶段需要开代理,上线后用户访问不需要开代理。

怎么给 Git 配置代理

如果你有代理软件(如 Clash),端口通常是 789010808

# 设置代理
git config --global http.proxy http://127.0.0.1:10808
git config --global https.proxy http://127.0.0.1:10808

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

不确定端口的话,问 AI:"我的代理软件是 XXX,帮我看看本地代理端口是多少"。

三、部署前准备

在开始部署前,确认以下内容:

  1. 已注册并登录 Cloudflare 账号(注册时需要开代理)
  2. 已有 GitHub 账号,网站代码已上传到仓库
  3. 仓库中包含可部署的网站代码
  4. 如需 AI 协助,准备好以下信息发给 AI:
    • GitHub 仓库地址
    • 项目使用的技术栈(不确定可以让 AI 看 package.json)
    • 构建命令和输出目录(不确定可以让 AI 判断)
    • 是否需要环境变量
不知道技术栈怎么办?:把项目的 package.json 内容、目录截图或仓库地址发给 AI,让 AI 帮忙判断构建命令和输出目录。

四、前端部署到 Cloudflare Pages

这是核心步骤。Cloudflare Pages 是国内可直连的前端托管平台,免费且无限流量。

1

进入 Cloudflare 后台

打开 https://dash.cloudflare.com/(建议开代理),登录后进入控制台首页。

2

找到 Workers & Pages

在左侧菜单栏找到 Workers & Pages,点击进入。

如果左侧菜单很多,在 Build / Compute 分类下找。

3

创建新应用

点击右上角蓝色按钮 Create application

4

选择部署 Pages

默认显示 Create a Worker。我们是部署网站页面,需要选 Pages。

在页面下方找到 "Looking to deploy Pages? Get started",点击 Get started

Worker vs Pages:Worker 偏向后端接口/Serverless 函数。Pages 适合部署网站、前端页面。网站上线选 Pages。
5

选择导入 Git 仓库

选择 Import an existing Git repository,点击 Get started

选择这个选项后,后续 GitHub 代码更新,Cloudflare 可以自动重新部署。

6

选择 GitHub 仓库

确认 GitHub 账号 → 在 Select a repository 区域选择目标仓库。

仓库太多可以在搜索框输入名称搜索。

7

如果找不到仓库怎么办?

页面底部会提示 "configure repository access for the Cloudflare Pages app on GitHub",点击 Cloudflare Pages 链接:

  1. 进入 GitHub 授权设置页面
  2. 选择允许 Cloudflare Pages 访问的仓库
  3. 勾选目标仓库 → 保存
  4. 回到 Cloudflare 页面刷新,重新搜索
8

配置构建和部署信息

选择仓库后进入配置页面,需要填写构建命令和输出目录。

项目类型构建命令输出目录
纯 HTML/CSS/JS 静态网站留空/
Vite 项目npm run builddist
React 项目npm run buildbuilddist
Next.js 静态导出npm run buildout
Astro 项目npm run builddist
不确定怎么填?:不要乱填!把 package.json 内容发给 AI,让 AI 判断。
9

点击部署

点击 Save and Deploy,Cloudflare 开始构建和部署。

10

等待部署完成

部署过程中会显示构建日志。成功后显示:

Success! Your project is deployed to Region: Earth

并展示预览地址,例如 website-deploy-sop.pages.dev

11

找到正式网站地址

在项目详情页 DeploymentsProduction 区域,可以看到:

https://你的项目名.pages.dev

这个地址就是正式访问地址,可以分享给任何人。

两种地址的区别:正式地址 xxx.pages.dev 对外使用;单次预览地址 4601e4a2.xxx.pages.dev 是某次部署的预览链接。对外分享用正式地址。

五、后端部署到 Railway

什么时候需要这一步?:如果你的网站只有展示页面(没有搜索、登录、数据交互等功能),可以跳过这一章。只有需要后端 API 时才需要。

Railway 是一个免费的后端托管平台(每月 $5 免费额度),支持 Python、Node.js 等。类似 Cloudflare Pages 之于前端,Railway 是后端的托管平台。

重要提醒:Railway 在国内无法直接访问(被墙)。但这不影响使用——我们会在第六章用 Cloudflare 做代理。你现在只需要开代理完成部署配置。
1

注册 Railway 账号(需要开代理)

打开 https://railway.app

点击右上角 Login 按钮

选择 Login with GitHub

中文理解:用 GitHub 账号直接登录,不需要单独注册

首次登录会弹出 GitHub 授权页面,点击 Authorize Railway 同意授权

授权后自动进入 Railway 控制台首页

2

创建新项目

在 Railway 控制台首页,点击 New Project 按钮(通常在右上角或页面中间)

弹出选项菜单,选择 Deploy from GitHub repo

中文理解:从 GitHub 仓库部署

其他选项说明:Railway 还提供 Empty Project(空项目)和 Start from Template(模板部署)。我们选 Deploy from GitHub repo,因为代码已经在 GitHub 上了。
3

选择后端仓库

选择 Deploy from GitHub repo 后,会显示你的 GitHub 仓库列表

在列表中找到并点击你的后端代码仓库

看不到仓库?:如果列表里没有目标仓库,点击 Configure GitHub App 链接,前往 GitHub 重新授权 Railway 访问你的仓库(和 Cloudflare Pages 的授权操作类似)。

选择仓库后,Railway 会自动开始构建和部署

构建过程可能需要 1-3 分钟,耐心等待

4

配置环境变量

进入刚创建的项目页面,点击顶部的 Variables 标签

点击 New Variable 按钮,逐个添加环境变量

常见环境变量参考:

变量名说明
DEEPSEEK_API_KEYsk-xxxxxxxxDeepSeek AI 的 API 密钥
PORT8000后端运行端口(一般自动检测)
DeepSeek API Key 怎么获取?:打开 https://platform.deepseek.com(国内可直连,不需要代理)→ 注册登录 → 左侧菜单 API Keys → 点击 创建 API Key → 复制密钥。
不知道需要哪些变量?:把后端代码中的 .env.exampleconfig.pyrequirements.txt 发给 AI,让 AI 告诉你需要配置哪些环境变量。
5

生成公网访问地址

进入项目页面,点击 Settings 标签

找到 Networking 区域

点击 Generate Domain 按钮

Railway 会自动生成一个公网地址,格式类似:

https://web-production-xxx.up.railway.app
记下这个地址!:后面配置 API 代理时需要用到。建议复制保存到记事本,或直接发给 AI 备用。
6

验证后端是否正常运行

在浏览器中打开后端地址 + /health

https://你的后端地址.up.railway.app/health

看到 {"status":"ok"} 或类似的 JSON 返回,说明后端正常运行。

打不开?:国内访问 Railway 需要开代理。验证完成后关代理也没关系,因为下一步我们会用 Cloudflare 代理让国内用户直连访问。
7

查看运行日志(验证失败时)

如果验证失败,进入项目 Logs 标签查看运行日志

把日志中的报错信息复制发给 AI,让 AI 帮你排查原因

常见原因:环境变量没配全(特别是 API Key)、Python 依赖安装失败、端口配置不对。把日志发给 AI 就能快速定位。

六、配置 API 代理(让国内用户能访问后端)

为什么要这一步?:Railway 后端在国内被墙,用户直接访问会失败。我们在 Cloudflare Pages 项目里加一个"中转文件",让用户请求通过 Cloudflare 转发到 Railway。Cloudflare 国内可直连,所以用户不需要开代理。

原理:用户访问 你的网站.pages.dev/api/xxx → Cloudflare 收到请求 → 转发到 Railway 后端 → 后端返回数据 → Cloudflare 返回给用户。整个过程用户无感知。

操作步骤

1

让 AI 帮你创建代理文件

不要自己写代码!把以下信息发给 AI,让 AI 帮你生成代理文件:

请帮我创建 Cloudflare Pages Functions 代理文件:
- 我的前端仓库地址是:XXX
- 后端地址是:https://你的后端地址.up.railway.app
- 需要代理的接口:/api/research(POST 请求)
- 还需要一个 /api/health 健康检查代理

请告诉我:
1. 需要创建哪些文件?
2. 每个文件的完整内容是什么?
3. 文件应该放在仓库的什么位置?

AI 会告诉你具体需要创建哪些文件、文件内容、以及放在哪里。

2

把文件放到正确位置

AI 告诉你创建的文件,通常放在前端仓库的 functions/api/ 目录下:

你的前端仓库/
├── functions/
│   └── api/
│       ├── research.js    ← 代理搜索接口
│       └── health.js      ← 代理健康检查
├── src/
├── package.json
└── ...
怎么创建文件?:如果你用 AI 编程工具(如 TRAE),直接告诉 AI "请帮我在 functions/api/ 目录下创建这些文件",AI 会自动完成。也可以手动在 GitHub 网页上点 Add file → Create new file 来创建。
3

推送到 GitHub

如果用 AI 编程工具,可以让 AI 帮你执行推送。也可以用命令行:

git add .
git commit -m "添加API代理"
git push origin main
自动重建:推送后 Cloudflare 会自动检测到新代码并重新构建,通常 2-3 分钟完成。可以在 Cloudflare 控制台 Deployments 页面查看构建进度。
4

验证代理是否正常

等 Cloudflare 构建完成后,在浏览器中打开:

https://你的网站.pages.dev/api/health

看到 {"status":"ok"} 说明代理正常工作!

恭喜!:到这里,你的网站已经完全上线了。用户可以在国内直接访问,不需要开代理。
如果验证失败:截图 Cloudflare 构建日志和浏览器报错信息,发给 AI 排查。常见原因:后端地址写错了、文件位置不对、后端服务没正常运行。

七、部署后检查事项

网站上线后,不要只看 Cloudflare 显示成功,还需要自己检查一遍。

检查清单

  1. 打开正式网站地址,确认页面能正常访问
  2. 检查首页是否显示正常
  3. 检查按钮、链接、图片是否正常
  4. 检查手机端展示是否正常
  5. 如果有表单,测试表单能否提交
  6. 如果有后端接口,测试接口能否正常返回
  7. 如果页面空白,检查构建输出目录是否填写错误
  8. 如果接口报错,检查环境变量和 API 地址是否正确
最重要的一步:用手机打开网站地址试试!电脑能打开不代表手机也能打开。

八、常见问题与解决方式

问题 1:找不到 GitHub 仓库

原因:Cloudflare 没有该仓库的访问权限。

解决:点击页面底部的 Cloudflare Pages 授权链接,到 GitHub 重新授权目标仓库。

问题 2:部署失败 — package-lock.json 不同步

错误信息npm ci can only install packages when lock file in sync

原因:升级了依赖版本但锁文件没更新。

解决:让 AI 帮你删除 package-lock.json 并重新推送。

问题 3:部署失败 — force-dynamic 冲突

错误信息Page with dynamic = "force-dynamic" couldn't be exported

原因:Next.js 静态导出模式不允许使用 force-dynamic

解决:把报错信息发给 AI,让 AI 帮你找到并删除相关代码。

问题 4:部署成功但页面空白

原因:通常是输出目录填写错误。

解决:检查构建输出目录。Vite 项目是 dist,Next.js 静态导出是 out。不确定就问 AI。

问题 5:网站可以打开但接口请求失败(502)

原因:后端未运行、地址错误或代理文件配置有误。

解决

  1. 检查 Railway 后端是否正常运行(Railway 控制台 → Logs)
  2. 检查代理文件中的 BACKEND_URL 是否正确
  3. 把报错信息发给 AI 排查

问题 6:显示 522 错误

原因:构建可能还在进行中,或者构建失败了。

解决:在 Cloudflare 控制台 Deployments 页面查看构建状态。如果 Failed,查看构建日志找原因。修复后重新推送代码。

问题 7:安全漏洞警告

现象:Cloudflare 或其他平台提示 "Vulnerable version of Next.js detected"。

解决:把提示信息发给 AI,让 AI 帮你升级到安全版本。升级后记得删除 package-lock.json 重新推送。

问题 8:Vercel 在国内打不开

原因:Vercel 在国内被墙。

解决:改用 Cloudflare Pages 部署前端。这也是本 SOP 推荐用 Cloudflare 的原因。

遇到问题不要慌:截图或复制报错信息发给 AI,AI 能帮你判断原因和解决方案。不要一直重复点击部署,要先看构建日志和报错原因。

九、给 AI 的提问模板

如果部署时不确定怎么填,或者遇到报错,直接用以下模板问 AI:

模板 A:不确定配置怎么填

我现在要把这个 GitHub 仓库部署到 Cloudflare Pages。
仓库地址是:XXX

请你帮我判断:
1. 这个项目是什么技术栈?
2. Cloudflare Pages 的构建命令应该填什么?
3. 构建输出目录应该填什么?
4. 是否需要环境变量?
5. 如果部署失败,我应该优先检查哪些地方?

模板 B:部署报错了

我在 Cloudflare Pages 部署网站时报错了。
这是报错信息:

【粘贴报错日志】

请你帮我判断:
1. 报错原因是什么?
2. 应该怎么修改?
3. Cloudflare Pages 配置里需要改哪些地方?
4. 修改后如何重新部署?

模板 C:网站打开了但功能不正常

我的网站已经部署到 Cloudflare Pages 了,
地址是:https://xxx.pages.dev

但是遇到以下问题:
【描述问题,比如:搜索功能用不了 / 页面显示不全 / 接口报错】

后端地址是:https://xxx.up.railway.app

请你帮我排查原因,告诉我应该怎么解决。
提问技巧:给 AI 的信息越详细越好——仓库地址、报错日志、截图、你操作到哪一步了。信息越全,AI 回答越准。

十、后续维护

更新网站内容

修改代码后,只需要一条命令重新部署:

git add .
git commit -m "修改说明"
git push origin main

推送后 Cloudflare 会自动重新构建,通常 2-3 分钟后新版本上线。不需要手动操作。

查看构建状态和日志

网站数据分析

Cloudflare 自带免费的数据分析功能:

网站监控

推荐用 UptimeRobot(https://uptimerobot.com)免费监控网站是否在线:

建议:上线后第一时间设置监控,这样网站出问题你能第一时间知道,而不是等用户投诉。

回退到旧版本

如果新版本有问题,可以回退:

十一、流程总结

前端部署(必须)

  1. 登录 Cloudflare → Workers & Pages → Create application
  2. 选 Pages → Get started → Import Git repository
  3. 连接 GitHub → 选择仓库
  4. 配置构建命令和输出目录(不确定问 AI)
  5. 点 Save and Deploy → 等待构建完成
  6. 复制 xxx.pages.dev 正式地址

后端部署(有后端时需要)

  1. 登录 Railway → New Project → Deploy from GitHub repo
  2. 选后端仓库 → 配置环境变量
  3. Settings → Networking → Generate Domain → 记下后端地址
  4. 验证 xxx.up.railway.app/health 返回正常

API 代理配置(后端在 Railway 时必须)

  1. 在前端仓库创建 functions/api/ 目录
  2. 放入代理文件(模板见第六章,让 AI 帮你生成)
  3. 推送到 GitHub → Cloudflare 自动重建
  4. 验证 xxx.pages.dev/api/health 返回正常

三个关键地址

名称地址格式用途
前端地址https://xxx.pages.dev分享给用户
后端地址https://xxx.up.railway.app配置在代理文件里
健康检查https://xxx.pages.dev/api/health验证是否正常

注意事项

  1. 网站部署优先选 Pages,不要误选 Worker
  2. GitHub 仓库不显示时,优先检查 Cloudflare Pages 的 GitHub 授权
  3. 不确定构建命令和输出目录时,不要乱填,让 AI 判断
  4. 部署成功不代表完全可用,还要手动打开检查
  5. 对外分享用 Domains 下的正式地址
  6. 遇到部署失败,先看构建日志,不要重复点击部署
  7. 如果 AI 卡住,换一个 AI 工具或搜索报错信息,避免长时间陷入无效等待