跳到正文
66ccff

66ccff.link:域名挂到 Cloudflare Pages 并上线博客

记录 2026-10-12 把 66ccff.link 挂到 Cloudflare、用 Pages 发布 Astro 博客的主路径:账号、Pages、自定义域、R2、发文与缓存。

66ccff.link:域名挂到 Cloudflare Pages 并上线博客

日期:2026-10-12。下面按操作顺序记可复用主路径。

1. Cloudflare 账号与站点

  1. 使用已有 Cloudflare 免费账号登录 Dashboard(邮箱登录即可;本站后续 API/连接器用同一账号授权)。
  2. Add a site → 输入 66ccff.link → 选 Free。
  3. 把注册商处的 NS 改成 Cloudflare 给出的两台权威 NS,等到区状态 Active。
  4. 对外入口以 www 为主:www.66ccff.link 服务站点;apex(裸域)用跳转或 CNAME 落到同一套内容,避免两套源。
  5. 博客配置里的规范地址写成 www(仓库 astro-paper.config.ts / site.url):
url: "https://www.66ccff.link/"

canonical、OG、RSS、sitemap 都跟 www,减少多余 301。

2. 连接 GitHub 与创建 Pages 项目

  1. GitHub 上准备好博客仓库(Astro + AstroPaper;本站私有仓亦可)。
  2. Cloudflare Dashboard → Workers & Pages → Create → Pages → Connect to Git。
  3. 授权 Cloudflare 访问该 GitHub 账号/仓库(OAuth,按提示勾选仓库范围)。
  4. 选中博客仓库,生产分支:main(push 到 main 即触发部署)。
  5. 构建设置(框架选 Astro 或按检测结果核对):
    • Framework preset:Astro
    • Build command:pnpm build(或项目文档写明的等价命令)
    • Build output directory:dist
    • Root directory:仓库根(无 monorepo 子目录则留空)
  6. 环境变量:本站未依赖额外密钥即可构建;站点 URL 以仓库内 site.url 为准,不必在 Pages 再写一套冲突变量。Node 版本按 Astro 要求使用 22.x(Pages 项目设置里可固定 NODE_VERSION=22)。
  7. Save and Deploy,等第一次构建成功,得到 *.pages.dev 预览域。

3. 自定义域名与 HTTPS

  1. 打开该 Pages 项目 → Custom domains → Set up a custom domain。
  2. 添加 www.66ccff.link。
  3. Cloudflare 在 DNS 区写入指向 Pages 的记录(常见为代理状态的 CNAME → *.pages.dev;按控制台当时提示确认即可)。
  4. SSL/TLS:自定义域由 Cloudflare 自动签发与续期(访客侧 HTTPS);区建议 Full (strict) 一类策略与 Pages 托管一致即可。
  5. apex 若需要:可加 apex → www 的跳转规则,或按控制台指引把裸域也接到同一 Pages 项目。
  6. 浏览器访问 https://www.66ccff.link,确认证书有效且内容为当前部署。

4. R2 图床(大图)

  1. Dashboard → R2 → 若首次使用,按提示开通免费额度订阅(按控制台当前流程)。

  2. Create bucket,名称例如 66ccff-img。

  3. 桶设置里 Custom Domains → 连接 img.66ccff.link(须与桶同属一个账号下的 66ccff.link 区)。

  4. 等待自定义域 SSL / ownership Active;DNS 会出现指向 R2 公共接入的 CNAME(由连接向导写入)。

  5. 上传对象(控制台上传或 API),用完整地址引用,例如:

    https://img.66ccff.link/brand/tianyi-hero.jpg

  6. CORS:纯 <img> / OG 引用一般可不配;若以后有浏览器直传或跨域 fetch,再在桶 CORS 里按来源补规则。本站当前以页面引用静态对象为主。

5. 静态资源分工(仓库内配置)

类型放哪访问
头图、OG 等大图R2 66ccff-imghttps://img.66ccff.link/...
favicon、头像等壳子小图仓库 public/同域 /favicon.png、/avatar.webp 等

大图走 img 子域,改图不必整站重建;小图标跟 Pages 一起发,同站加载更稳。site.url 等站点元数据改在仓库配置文件,随构建进站,而不是靠临时手改线上 HTML。

6. 发文与发布循环

文章在 src/content/posts/*.md。最小 frontmatter:

---
author: 66ccff
pubDatetime: 2026-10-12T02:17:00+08:00
title: 标题
description: 一两句摘要
draft: false
tags:
  - dns
---
  • 时间用 +08:00,避免未来 UTC Z 被生产端定时过滤藏文。
  • draft: false 才进正式站。

发布:

git add .
git commit -m "简述变更"
git push origin main

Pages 已通过 GitHub 集成监听 main:clone → build → deploy。在项目 Deployments 里看最新一次是否 Success,然后刷新 https://www.66ccff.link。

7. 缓存相关

  1. Pages 静态资源:构建产物带长缓存友好的哈希文件名(/_astro/*);HTML 入口缓存较短,一般 push 新部署后不久即可见。
  2. 整站 HTML / 自定义域:若改了首页或文章但仍看到旧版,可在 Cloudflare 对该主机名做一次 Cache Purge(按 URL 或主机),或对浏览器强刷。
  3. R2 自定义域:对象更新后若 CDN 仍吐旧图,可对 https://img.66ccff.link/... 单独 purge,或换新对象键避免覆盖同名缓存。
  4. favicon / 根路径小文件:易被浏览器与边缘长缓存;替换后若图标不变,purge /favicon.ico、/favicon.png 等并强刷。

日常多数情况:等新部署变绿即可,不必每次手动清缓存。

小结

  1. CF 登录并托管 66ccff.link,www 为主,site.url 写 https://www.66ccff.link/。
  2. GitHub OAuth 接入 Pages,Astro / pnpm build / dist,分支 main 自动部署。
  3. Custom domain 绑 www,DNS + 自动 HTTPS。
  4. R2 桶 66ccff-img + img.66ccff.link 放大图;public/ 放 favicon/头像。
  5. 发文:pubDatetime(+08:00)+ draft: false → git push origin main。
  6. 缓存:优先等新部署;个别入口或图床 URL 再按需 purge。