把静态站挂到 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 打开试一次。别的都是猜。