评论区改为自托管 twikoo 前端,并适配主题

- 前端脚本从 jsDelivr 改为自托管 public/assets/js/twikoo.min.js,
  版本与后端对齐(1.7.20)。国内访问 jsDelivr 实测 3 秒以上且常被墙,
  是评论区空白的根因
- 新增 public/assets/css/twikoo-custom.css 主题适配层:选择器加 #twikoo
  前缀以覆盖运行时注入的样式,颜色引用主题变量,自动跟随亮/暗色
- 修复首屏重复初始化:astro:page-load 在首屏也会触发,用 dataset.mounted 去重
- 评论配置移除已无用的 version 字段;README 与操作指南同步更新
This commit is contained in:
dsh
2026-09-14 20:58:37 +08:00
parent 686b1caa7d
commit 0b99eabfbe
6 changed files with 320 additions and 87 deletions
+23
View File
@@ -213,6 +213,29 @@ sudo sysctl fs.inotify.max_user_watches=524288
检查路径是否以 `/` 开头(`/assets/images/x.webp`),以及文件是否真在 `public/` 下对应位置。
注意 `public/` 里的文件路径就是 URL 路径,**没有 `public` 这一段**。
**评论区空白 / 不显示**
先确认页面类型——评论**只出现在文章页、关于页、友链页**,首页、偶得、相册、书架、专题都没有,这是正常的。
如果文章页也是空的,按顺序查:
1. `src/data/comments.ts` 里的 `twikooEnvId` 是否填了(留空则整个评论区不渲染)
2. 打开浏览器控制台,看有没有 `[twikoo] 初始化失败` 或 404
3. 确认 `public/assets/js/twikoo.min.js` 存在,且版本与后端一致
4. 直接测后端:
```bash
curl -s -X POST https://twikoo.tianxuetao.top \
-H 'Content-Type: application/json' \
-d '{"event":"GET_FUNC_VERSION"}'
```
正常会返回 `{"code":0,"version":{"VERSION":"1.7.20"}}`。若版本和前端脚本不一致,去
<https://cdn.jsdelivr.net/npm/twikoo@<后端版本>/dist/twikoo.min.js> 下载同名文件替换。
> 评论按**页面路径**归属,且存的是浏览器提交的**百分号编码**路径。
> 换域名或改 URL 结构后,老评论会因为路径对不上而「消失」——数据还在后端,只是不再匹配。
**想回退到之前的状态**
```bash