建站 · 2 分钟

把静态站挂到 Cloudflare Pages:一个子域名,零成本

这个站本身就是这么挂上去的。整个过程没什么玄学,记一下,省得以后忘。

先搞清楚一个前提

Cloudflare 免费的部分能干什么、不能干什么,界线很清楚:

能不能跑
纯 HTML / CSS / JS 文件✅ 能
PHP、数据库(WordPress 那种)❌ 不能
需要后端计算的接口⚠️ 要用 Workers,另一套东西

所以「WordPress 搬到 Cloudflare」这个说法是不成立的——WordPress 是 PHP + 数据库,动态拼页面。Cloudflare Pages 只能发已经做好的静态文件。

但如果你要的只是「一个能看文章、能放图的网站」,静态站完全够用。访客根本看不出区别。

三步

1. 装 wrangler 并登录

npm i -g wrangler
wrangler login

wrangler login 会打开浏览器让你点一下授权。不需要去面板里建 API Token,那一步可以整个跳过。

2. 准备要部署的目录

wrangler 要的是一个装着最终文件的目录,比如 dist/。里面至少有 index.html

3. 部署

wrangler pages deploy dist --project-name=你的项目名

第一次跑会问你要不要创建这个项目,回车确认。跑完它会直接打印网址:

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

完事了。这个网址自带 HTTPS,全球 CDN,不用备案。

几个实际会踩的坑

项目名是全世界唯一的。blog.pages.dev 这种早被人抢了。取个带自己标识的名字,被占了换一个就行。

路径别用绝对路径。如果 CSS 写成 /assets/style.css,本地双击 index.html 打开时会失效。用相对路径(../assets/style.css),本地预览和线上就都对了。

本地预览要用 HTTP 服务器,不要双击。很多浏览器对 file:// 有额外限制,看着像 bug 其实不是。起个本地服务器再测最省事。

node build.js --serve

关于国内访问

得说句实话:Cloudflare 免费版在国内的访问质量不稳定。

pages.dev 这个域名在国内时好时坏。如果站主要是给国内的人看,这是硬伤。可能的处理:

  • 绑自己的域名(国内访问通常比 pages.dev 好一些)
  • 换国内的对象存储(腾讯云 COS、阿里云 OSS 都能做静态托管,但要域名 + 备案)
  • 干脆放在国内服务器上(同样要备案)

判断方法只有一个:部署完,用手机 4G 打开试一次。别的都是猜。