修复评论区不渲染:id 全局变量遮蔽导致脚本未加载

容器是 <div id="twikoo">,浏览器会把带 id 的元素暴露成 window 上的同名
全局变量,所以脚本加载前 window.twikoo 已指向那个 DOM 元素。原守卫
if (window.twikoo) 因此误判「已加载」而直接返回,真正的 twikoo 库从未被加载,
表现为只显示「评论」标题、容器为空。

改为检查真正的 API:typeof window.twikoo?.init === "function"。

验证(jsdom 对线上页面实测):init 为函数,容器渲染 23040 字节,
提交框/昵称/textarea 齐全,历史评论 |´・ω・)ノ 正常显示,无报错。

另:deploy.sh 的 PI_SITE_PATH 改为 /home/pi/www/Astro_firefly/(覆盖部署)
This commit is contained in:
dsh
2026-09-14 21:08:46 +08:00
parent 0b99eabfbe
commit 4810c87d30
2 changed files with 11 additions and 2 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ set -euo pipefail
# ========== 配置区(按需修改) ==========
PI_HOST="192.168.1.87" # 树莓派 IP
PI_USER="pi"
PI_SITE_PATH="/home/pi/www/Astro_vermilion/" # 与 Firefly 分开放,方便对比
PI_SITE_PATH="/home/pi/www/Astro_firefly/" # 沿用现有 nginx 站点目录(会覆盖原 Firefly)
CLOUD_HOST="81.70.45.191" # 云服务器 IP
CLOUD_USER="root"