R2 静态资源盘点与国内加速建议(2026-09-05)
背景:uikit 已迁移 cdnjs.snrat.com(国内 4-5× 提速)。本次全量盘点仍挂在
r2.337845818.best(Cloudflare 链路、未接 EdgeOne)的静态资源,逐文件做
官方源 hash 校验 + 国内实测,给出分类迁移建议。
0. 关键结论速览
| # |
结论 |
级别 |
| 1 |
截图 1100ms 来自 PageSpeed(海外探测),是 CF 链路 + Rocket Loader 的组合;国内 EdgeOne 路径干净无 rocket-loader,国内体验不受其影响 |
🔴 认知修正 |
| 2 |
国内真实瓶颈 = r2.337845818.best 本身(CF 国际链路),实测每个资源 0.72–1.10s,与"哪个库"无关,是源的问题 |
🔴 |
| 3 |
公共 CDN ≠ 快:cdnjs.cloudflare/jsdelivr 国内实测 0.6–1.8s,与 R2 同级;真正快的是 snrat(cdnjs 国内镜像)0.15–0.42s |
🟠 关键认知 |
| 4 |
6 个 JS 库经 sha256 校验 = 纯官方原版,可安全迁 snrat(2–7.4× 提速) |
🟢 |
| 5 |
waline-no-commits.css / easy.qrcode(remake) / time.box.js / neko-pixel / 图片图标 = 定制或专属文件,无公共源,只能自托 |
🟡 |
| 6 |
根治定制文件的唯一途径:把 R2 静态域名接入 EdgeOne 国内加速(方案 A),与库迁移可叠加 |
🟡 推荐 |
1. 全量清单(去重后 17 项,含已注释项)
A 组:官方库,sha256 与官方完全一致 → 可迁 cdnjs.snrat.com ✅
| 文件 |
大小 |
加载位置 |
加载方式 |
国内实测 R2→snrat |
提速 |
cdn/lib/alpinejs/3.9.0/cdn.min.js |
38KB |
header 全站 |
defer |
1.10s → 0.15s |
7.4× |
cdn/lib/jquery/3.7.1/jquery.min.js |
88KB |
二维码页(list/not-found) |
按需 |
0.83s → 0.17s |
4.9× |
cdn/lib/vconsole/3.12.1/vconsole.min.js |
214KB |
header(VConsole 条件) |
同步 |
0.72s → 0.20s |
3.5× |
cdn/lib/cropperjs/1.6.2/cropper.min.js |
37KB |
头像裁剪页 |
按需 |
0.81s → 0.22s |
3.6× |
cdn/lib/dayjs/1.10.8/dayjs.min.js |
6.5KB |
header 全站 |
defer |
0.85s → 0.42s |
2.0× |
| uikit css/js/icons |
— |
header 全站 |
已迁 ✅ |
— |
4.3–4.9× |
校验方式:R2 文件与 snrat/cdnjs/jsdelivr 官方逐一 sha256 比对,全部一致
(jquery/dayjs/alpine/cropperjs/vConsole 同 cdnjs 官方发行版;waline.js 同
@waline/[email protected] 官方发行版)。
B 组:官方原版但公共源国内不优 → 暂留 R2 / 随方案 A
| 文件 |
大小 |
说明 |
判断 |
cdn/lib/waline/2.15.8/waline.js |
164KB |
sha256 = 官方原版,但 @waline/client 只发 jsdelivr/unpkg(无 cdnjs 收录),jsdelivr 国内实测 ~0.99s > R2 0.79s |
🟡 迁移无收益,暂留 |
cdn/waline/.../waline-no-commits.css |
19KB |
定制:193 规则与官方一致,39 条差异全部是把 .wl-card*(评论卡片/管理操作/徽章/状态/内容)设 display:none —— 即"只留评论区容器、不显示评论列表"的刻意定制,不可换官方 css |
🟡 media=print 非阻塞,暂留 |
C 组:专属/定制文件,无公共源 → 留 R2,等方案 A 🔴
| 文件 |
用途 |
说明 |
cdn/time.box.js |
全站 defer |
站点专属脚本 |
cdn/js/remake/easy.qrcode.min.js |
二维码页 |
remake 改造版,公共 qrcodejs 功能不等价 |
cdn/lib/neko-pixel/0.0.21/{style.css, neko-pixel-app.umd.js} |
IsPixel 页 |
npm registry 查无此包,无公共源 |
tamabox/tamabox_low.png |
logo/favicon/og |
站点资源 |
tamabox/icon/social/*.png ×5 |
社交图标 |
站点资源 |
D 组:已注释、未启用(清理候选)
cdn/busuanzi.pure.mini.js(header 注释)— UV/PV 已由 vercount 承担
oss-to-r2/nekobox/.../waline.js + waline-no-commits.css(home.html 注释)
2. 实测数据
国内本机(2026-09-05,3 次全量下载取中位)
| 资源 |
R2(CF 链路) |
snrat(国内节点) |
| jquery |
0.83s |
0.17s |
| dayjs |
0.85s |
0.42s |
| alpinejs |
1.10s |
0.15s |
| cropperjs |
0.81s |
0.22s |
| vconsole |
0.72s |
0.20s |
| waline.js(仅 jsdelivr 可比) |
0.79s |
jsdelivr 0.99s ❌ |
| 专属文件(png/time.box.js) |
0.72–1.10s |
无公共对应 |
R2 所有资源稳定落在 0.72–1.10s(连接的是 Cloudflare AMS 国际链路)。
对照参考:snrat 上 uikit 全量 263KB 约 0.25s —— 差的不是文件,是源。
修正认知
- Rocket Loader 只影响走 CF 的海外路径(PageSpeed/GTmetrix/测试域名),
国内 EdgeOne 路径的 HTML 实测无 rocket-loader。国内用户感受到的"慢"
主要是 R2 的 CF 国际链路,不是 Rocket Loader。
- PageSpeed 分数低的部分原因(海外 1100ms 资源)仍可靠关 Rocket Loader
改善海外体验,但对国内数字无影响。
3. 迁移方案对比
| 方案 |
做法 |
覆盖范围 |
工作量 |
模板改动 |
风险 |
| A. R2 接入 EdgeOne(根治) |
r2.337845818.best 走 EdgeOne 国内加速(源站=CF R2 公共端点),沿用 dnspod 境内/境外分流经验 |
全部文件:A+B+C 组一次解决 |
EdgeOne 控制台 + DNS 记录 |
无(域名不变) |
🟢 低,但涉及账号/计费与回源配置 |
| B. 库迁 snrat(对症) |
A 组 5 个库 URL 换 cdnjs.snrat.com |
仅官方库 |
每库改 1 处模板 URL |
5 处 |
🟢 极低(sha256 已验证) |
| A+B 组合(推荐) |
先 B 快速见效,再 A 收尾定制文件 |
全部 |
— |
5 处 + 控制台 |
🟢 |
方案 A 的核心价值:B/C 组那些"无公共源"的定制文件(no-commits.css、
easy.qrcode remake、time.box.js、neko-pixel、图片)在 R2 上每请求 ~0.8s,
只有接国内加速才能根治;逐个找公共源既找不到也不值得。
注:EdgeOne 加速的对象是静态资源分发,R2 仍保留在 Cloudflare 作为
源站与海外出口,国内节点回源缓存后 CDN 分发。
4. 建议落地批次(待批准)
- 🟢 P1(已做):uikit 三件套 → snrat ✅ 已上线测试环境
- 🟢 P1-批量 B:alpine/dayjs(header 全站)→ snrat;jquery/cropperjs/vconsole(按需页)→ snrat,共 5 处 URL
- 🟠 P2-方案 A:r2.337845818.best 接入 EdgeOne 国内加速(需你在 EdgeOne 控制台操作/确认计费;我可以先帮你查 EdgeOne 对 R2 自定义域作源站的官方支持方式)
- 🟡 P3:waline.js/no-commits.css 随方案 A 覆盖;清理 D 组注释残留;PageSpeed 若仍需优化海外分可关 CF Rocket Loader(per-zone)
5. 风险与回滚
- 全部 A 组迁移经 sha256 验证 = 官方原版,无内容差异风险;回滚=改回 R2 URL
- waline-no-commits.css 不可替换为官方 waline.css(会显示被隐藏的评论区);若误换,回滚即可
- 方案 A 若回源/计费踩坑,DNS 一条记录切回原解析即完全回滚