将 HuluVest 部署到 Cloudflare Pages
你可以不使用 GitHub,把 Codex 生成的纯静态 HTML、CSS 和 JavaScript 直接部署到 Cloudflare Pages。本教程会带你从 Cloudflare 注册开始,完成命令行部署和自定义域名绑定。
跳到部署命令在本文中
先决条件
开始之前,请确认你已经拥有以下内容。
- 一个可以登录的 Cloudflare 账号。
- 一个域名,例如 huluvest.com。
- 一个本地静态网站目录,例如 site/。
- 可以运行命令行的 macOS、Windows 或 Linux 环境。
注册并登录 Cloudflare
- 打开 Cloudflare 官网。
- 注册账号并完成邮箱验证。
- 登录 Cloudflare Dashboard。
登录后,你会在 Dashboard 中管理域名、DNS、Pages 项目和部署记录。
添加 huluvest.com
- 在 Cloudflare Dashboard 中选择 Add a domain。
- 输入 huluvest.com。
- 选择 Free plan。
- 按照 Cloudflare 提示,到域名注册商修改 nameserver。
- 等待 Cloudflare 显示域名为 Active。
nameserver 生效通常需要几分钟到数小时。生效前,DNS 记录可能无法按预期访问。
创建 Pages 项目
Direct Upload 不在域名主页中。你需要从 Cloudflare Dashboard 的 Workers & Pages 区域创建 Pages 项目。
- 进入 Workers & Pages。
- 选择 Create application。
- 选择 Pages。
- 选择 Upload assets 或 Direct Upload。
- 项目名填写 huluvest。
也可以使用 Wrangler 创建项目。
npx wrangler pages project create huluvest --production-branch=main
准备 Node.js 和 Wrangler
Wrangler 是 Cloudflare 官方命令行工具。新版 Wrangler 需要较新的 Node.js。HuluVest 使用 Node 22。
检查 Node.js
node -v npm -v npx -v
使用 Homebrew 安装 Node 22
brew install node@22
如果你不想覆盖系统默认 Node,可以在命令前临时指定 Node 22。
PATH=/usr/local/opt/node@22/bin:$PATH node -v
登录 Wrangler
npx wrangler login npx wrangler whoami
准备静态网站目录
Cloudflare Pages 上传的是 site/ 目录中的文件,而不是整个项目根目录。
site/
index.html
tools/
portfolio.html
dca.html
return-calculator.html
risk.html
docs/
deploy-cloudflare.html
assets/
css/
js/
_headers
_redirects
本地预览网站。
python3 -m http.server 8080 --directory site
然后在浏览器打开:
http://127.0.0.1:8080/
部署网站
HuluVest 在 package.json 中封装了部署命令。预览版本用于检查页面,正式版本用于更新生产站点。
部署预览版本
npm run deploy:preview
部署正式版本
npm run deploy
底层 Wrangler 命令如下。
wrangler pages deploy ./site --project-name=huluvest --branch=main
部署成功后,Cloudflare 会返回一个 pages.dev 地址。
绑定自定义域名
- 进入 Workers & Pages。
- 打开 huluvest 项目。
- 进入 Custom domains。
- 添加 huluvest.com。
- 添加 www.huluvest.com。
在 DNS 中设置 CNAME 记录。
Type: CNAME Name: @ Target: huluvest.pages.dev Proxy: On Type: CNAME Name: www Target: huluvest.pages.dev Proxy: On
验证部署结果
打开生产域名。
https://huluvest.com
也可以使用命令行检查状态码和页面标题。
curl -iL https://huluvest.com | head -80
成功时应该看到类似结果。
HTTP/2 200 <title>HuluVest - 中文投资分析工具</title>
故障排除
Wrangler 提示 Node.js 版本太旧
安装 Node 22,或在命令前临时指定 Node 22 的路径。
PATH=/usr/local/opt/node@22/bin:$PATH npx wrangler --version
npm 缓存权限错误
如果看到 EACCES,可以给项目单独设置 npm 缓存目录。
npm_config_cache=.npm-cache npx wrangler --version
Cloudflare 返回 1016
这通常表示域名已经进入 Cloudflare 路由,但 DNS 没有正确指向 Pages 项目。确认 CNAME 目标是 huluvest.pages.dev。
www.huluvest.com 无法访问
确认 DNS 中存在 Name: www 的 CNAME 记录,并且 Pages 的 Custom domains 中也添加了 www.huluvest.com。