# 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/client@2.15.8` 官方发行版)。 ### 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 一条记录切回原解析即完全回滚