跳到主要内容
cnb的npc测评one博客-2026.11.14

cnb的npc测评one博客-2026.11.14

2083 字 8 分钟 -- 阅读 -- 评论
最后更新于:
AI 摘要

@nxcare(时光) 我把 onedayxyy.cn 在中国大陆网络下用真实 Chromium(桌面 1440×900 + 移动 390×844 双视口)跑了一遍,不只是看首页——从首页/归档/分类/标签/相册入口收了 2042 条站内 URL 全量测状态码,另外把 sitemap.xml 的 1806 条也全扫了一遍,外加"上一篇/下一篇"、“侧栏”、“面包屑"三类跳转链接单独回归。结论先给:底子相当好,工程细节有几处硬伤,尤其是"能跳到 404 的入口链接"这一类。


一、优点(实测成立,不是看截图猜的)

1. 性能底子真的好。 首页 TTFB 0.26–0.50s(EdgeOne 全 Cache Hit),46 个请求 / 252KB,load 855ms。HTML 走 brotli(271KB → 43KB),JS/CSS 全是 max-age=31536000, immutable + 内容哈希指纹,二次访问基本零成本。这套缓存策略比很多商业站都规范。

2. 无跳刷新的站内导航做得漂亮。 归档页 ↔ 文章页互跳,URL、title、历史记录 history.back() 全部正确,无残留、无白屏、无控制台报错。这是最容易出 bug 的地方,它稳住了。

3. 搜索是真能用的,而且是本地索引。 FlexSearch + Web Worker + /data/search/index.json.gz,搜 docker 返回 10 条精确结果,搜中文 相册 也正常,关键词命中、点击跳转都对。中文站做本地搜索还能拼音/中文都吃得下,不多见。

4. 视觉与细节有品。 Teek + VitePress 双引擎混搭,首页大图 banner、波浪分隔、卡片 hover、暗色模式(<html class="dark"> 一次切干净,壁纸也跟着适配)、快捷菜单、移动端抽屉菜单(含图标+箭头+分组)、404 页插画、代码块一键复制、TOC 侧边定位、AI 摘要卡片……这些不是套模板能出来的,有取舍有打磨。

5. 字体做了子集化。 cn-font-split 把中文字体切成 woff2 分片按需加载,这是中文站最容易忽略的一环。

6. SEO 基础项齐全。 canonical、og:title/description/image、twitter:card、lang="zh-CN"、RSS(/feed 1120 条)、robots.txt 规则清晰、404 返回真正的 404 状态码、外链全带 rel="noopener"。

7. 评论系统自己写、能用。 留言区 7 条评论正常渲染,/api/comments 返回结构清晰,还带人工审核提示。

8. 移动端无横向溢出(scrollWidth == clientWidth),菜单、文章页、面包屑都完整。


二、缺点(设计/架构层面,不是 bug 但会持续咬人)

1. 侧栏全量内联,把 HTML 撑爆了。 这是最影响体感的一条。实测:

  • /linux/0oajy/(mysql 页):HTML 4.88MB,侧栏 1818 个条目,DOM 节点 16.5 万,load 4.6s。
  • 全站 2042 页 HTML 中位数 563KB,p90 610KB,1216 个页面 >500KB。 侧栏应该做成 JS 异步加载或独立 HTML 片段,现在每个页面都背着一整棵文档树。

2. 一个文档两套 URL,还都 200。 同一个内容同时存在 /docs/30.专题/20.博客/xx 和 /topics/jczzw/ 两个地址,抽查 317 个 docs 页里有 73 个存在这种重复。canonical 虽然指向 docs 版本,但两套都返回 200 且都可访问,属于自我稀释。而且 /topics/jczzw/、/moments/dhlpq/ 这种 5 位随机串对人和搜索引擎都毫无意义。

3. 目录型 URL 混着中文和序号。 /30.专题/20.博客/14.静态网页托管服务 这种路径,浏览器地址栏一片 %E4%B8%93…,分享出去很难看,也是下面第 1 号 Bug 的根源(漏加 /docs 前缀时难以肉眼发觉)。

4. 移动端文章页信息密度差。 首屏几乎被一张竖构图大图占满,读者要滑两屏才见到正文。相册类博客可以理解,但技术文也这样处理就牺牲了阅读效率。

5. 无障碍细节欠缺。 文章页 16 张图里 12 张 alt 为空;面包屑、侧栏展开按钮的可访问名不完整。


三、Bug 清单(都复现过,附实测地址)

🔴 P0:站内大量入口直接跳 404

现象实测规模
「下一篇/上一篇」指向缺 /docs 前缀的路径在 /topics/jrtqp/ 点「下一篇 静态网页托管服务」→ https://onedayxyy.cn/30.专题/20.博客/14.静态网页托管服务 → 404317 个唯一链接全 404,分布在 542 个页面上
面包屑链接失效/linux/8yfle 点面包屑「docker」→ /docker/ → 404(点「docker简介」也 404)抽查 314 个面包屑 href,301 个 404,含 /docker/、/工具/、/资源下载/、/摄影/、/风景/、/ai/ 等
常驻侧栏 5 条死链/linux/0aigo、/linux/6v9ko、/linux/chngk、/linux/lpev1、/linux/obxy8 全部 404每条出现于 449 个页面
分类/标签页入口 404/相册/、/开源项目/、/ai/、/oneblog/、/moments/dhlpq从首页+分类+标签+归档入口抓到的 2042 条里 10 条 404
sitemap 里的死链/docs/30.专题/20.博客/30.图片/50.avif/、/docs/20.前端/20.css/、/docs/20.前端/10.html/1806 条里 3 条 404

这是最该修的一类:读者点「下一篇」直接吃 404,对技术博客的伤害远大于样式问题。修法很简单——分页/面包屑生成时统一走同一个 URL 生成函数,别一处带 /docs、一处不带。

🟠 P1:搜索第一次点没反应,要点第二次

复现路径(新鲜标签、清缓存,连续 3 次稳定复现):

  1. 打开任意文章页,点右上「快捷菜单」→ 点「搜索 文章·文档」;
  2. 什么都不发生,#search-modal 仍 display:none,window.TeekSearch === undefined;
  3. 再点一次同样的按钮 → 弹窗正常打开,搜索可用。

根因在代码里:quick-menu.min.js 是用 capture 阶段 stopPropagation 处理点击,而搜索脚本的懒加载监听挂的是 window 上的 pointerdown/touchstart/keydown,两者抢手势;TeekSearch.open() 未就绪时返回 false,静默失败。建议:TeekSearch 未定义时排队而不是丢弃,或给按钮加 disabled 态 + “加载中"反馈。用户遇到就是"搜索坏了”。

🟠 P1:搜索索引 1.9MB 且不走缓存

  • index.json.gz = 1.9MB(未压缩 json 9.8MB),响应头 Cache-Control: public, max-age=0, must-revalidate —— 每次都得回源校验,等于每次首搜都要重下。
  • 实测首次构建索引耗时 12–14 秒,期间只显示"搜索引擎加载中…"。
  • 建议:加 max-age+immutable(配合版本号 query),并把索引再切分/按需加载。

🟡 P2:失效外链图片与混合内容

  • /about/homepage/:5 张 pixpro.coul.top 图 DNS 直接不解析(域名已废弃);bu.dusays.com/...6401a79030db5.png 返回 404;16personalities.com 头像被浏览器 ORB 拦截。
  • /about/friend-links/:6 个图片加载失败 + 1 处 Mixed Content(http://liuchenyang.top/picture.jpg 被强制升级 HTTPS)。
  • 建议:站点自己已经有好几个图床域(oneimg/img/img2),把这几个外链搬过来就干净了。

🟡 P2:域名与安全配置

  • http://onedayxyy.cn 不做 301 跳 HTTPS,直接 200 返回全文——存在内容重复,也是混合内容的温床。
  • https://www.onedayxyy.cn 返回 404(tencent-cos),用户手输 www 直接打不开。
  • 安全响应头全缺:Strict-Transport-Security、Content-Security-Policy、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy 一个都没有。
  • /data/search/index.json(9.8MB 明文)可直接下载——robots.txt 里 Disallow: /data/search/ 只约束爬虫,不约束人。

🟢 P3:小毛病

  • /rss.xml、/index.xml、/atom.xml、/search/ 均 404(/feed 是好的,但常见猜法是前面几个)。
  • /404.html 返回 200 而不是 404,且没有 noindex,可能被收录。
  • 控制台有"preload 未被使用"警告(archives/ 页预加载了 mu.baimu.live 的图)。
  • 文章页 <h1> 存在但配图 alt 大量为空(见缺点 5)。

四、一句话总评

这是一份"审美和性能都在线、工程收尾没做完"的作品。 视觉、主题深度、本地搜索、pjax、缓存策略都能看出作者是真下了功夫的;但"上一篇/下一篇 317 个链接全 404"“面包屑 301 个 404"“搜索第一次点没反应"这三个,属于读者每天都会踩的坑——它们不影响你拿这份站去展示,但会让访问者觉得"这站没人维护了”。

优先级我建议就按这个顺序修:①入口链接统一 URL 生成 → ②搜索懒加载竞态 → ③索引缓存头 → ④侧栏异步化(省 500KB/页)→ ⑤外链图搬回自家图床 + 补安全头。前三项加起来工作量不大,收益最大。

最新文章

文档导航