feat: favicon 边缘缓存 + CDN 整站刷新兜底 + 评论孤儿修复归档

- blog-admin tools.ts: favicon 响应加 s-maxage/CDN-Cache-Control,
  让 CF 边缘可缓存,边缘命中即不进 Worker,KV 读取量大幅下降
- scripts/refresh_cdn.js: 裸域名自动补尾斜杠(多吉云 rtype=path 是目录刷新,
  https://usj.cc 只刷首页,https://usj.cc/ 才是全站),并打印刷新清单
- 新增文档:评论孤儿修复方案、函数版证书管家方案、诊断报告
This commit is contained in:
zqlit committed 2026-10-06 12:46:05 +08:00
1 parent d273330e10
commit c2f890a0f7
5 files changed
+790 -28

No files matched your search

+19 -3
View File
@@ -32,7 +32,7 @@ async function main() {
return;
}
const urlList = cdnUrlListStr
let urlList = cdnUrlListStr
.replace(/\n/g, ",")
.split(",")
.map((u) => u.trim())
@@ -43,7 +43,21 @@ async function main() {
return;
}
console.log(`Refreshing ${urlList.length} URLs...`);
// ★ 多吉云 rtype=path 是「刷新目录」,目录必须以 / 结尾:
// https://usj.cc → 只刷新首页这一个文件(旧行为,不是全站)
// https://usj.cc/ → 整站刷新
// 这里兜底补尾斜杠(只对裸域名生效,不碰带路径的 URL)。
urlList = urlList.map((u) => {
const bare = /^https?:\/\/[^/?#]+$/.test(u);
if (bare) {
console.log(`[warn] "${u}" 缺少结尾斜杠 —— 补成 "${u}/" 才能全站刷新`);
return u + "/";
}
return u;
});
console.log(`Refreshing ${urlList.length} URLs (rtype=path, 目录刷新)...`);
urlList.forEach((u) => console.log(` - ${u}`));
const result = await dogecloudApi("/cdn/refresh/add.json", {
rtype: "path",
@@ -51,7 +65,9 @@ async function main() {
});
if (result && result.code === 200) {
console.log(`Refresh task submitted. Task ID: ${result.data.task_id}`);
console.log(
`Refresh task submitted. Task ID: ${result.data.task_id}, count: ${result.data.count}`,
);
} else {
console.error(`Failed to submit refresh task. Response: ${JSON.stringify(result)}`);
process.exit(1);