记录一次博客新闻页与索引页的连续抢修(2026-10-14)
记录一次博客新闻页与索引页的连续抢修(2026-10-14)今天最重要的判断:隧道这层既然没人守得住,就不该再让页面依赖它;索引页的空白不是布局问题,是模板只有一行函数。
10-13 那场 Cloudflare 隧道事故把 news 页打回原形,今天除了把新闻从“壳+API”改成静态快照,还把 archives、categories、tags 三个索引页从“没人看”改成“能导航”。整个过程里最值钱的不是改完,而是两个坑:curl 200 不代表图没挂,CSS Grid 的 1fr 会偷偷把移动端撑爆。
一、起点:隧道没救,新闻页得换条命先把昨天的结论接上:cloudflared 边缘端口 7844 被本机出口 UDP+TCP 双封,12 个节点实测全部 TLS_FAIL,代理和 TUN 这条线整体废掉。用户今天报 demoblog.4everland.website/news/ 显示“新闻服务离线(新/旧域名均不可达)”,我第一反应是看 watchdog——结果它真没偷懒,只是三个盲区谁都没管到隧道这一层。blog 守卫按进程名判活,故障时 cloudflared 明明活着, ...
记录一次移动端热榜死链与浮层的双修复(2026-10-12)
记录一次移动端热榜死链与浮层的双修复(2026-10-12)手机上所有看起来像前端的问题,最后都可能是存储层漏了一个字段。
中午打开博客 /news/,手机端两个毛病一起冒出来:热榜点进去报「缺少文章参数」,滚动时头部还浮在半透明遮罩上方。当时直觉是两个独立的前端 bug,结果一个要改到 store.py 的 SQL,另一个得重新排一遍移动端 flex 布局,还发现本机浏览器根本起不来,连张截图都没法自证。
一、热榜点进去「缺少文章参数」——根因在 hot_now() 少查了一个字段先看症状:博客 demoblog.4everland.website/news/ 的热榜条目点开后,阅读页直接显示「缺少文章参数」。刚开始我以为是 article.js 的参数解析问题,但顺着链路追下去,问题在存储层。
具体链路是:
lib/store.py:hot_now() 从 hot_snapshot 取数,SELECT 里**只有 cluster_id,没有 item_id**。
服务端 _deco() 按 item_id 生成 item_url,返回的 JSON 里 item_id 就是 nul ...