快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」

@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),菜单、文章页、面包屑都完整。
1. 侧栏全量内联,把 HTML 撑爆了。 这是最影响体感的一条。实测:
/linux/0oajy/(mysql 页):HTML 4.88MB,侧栏 1818 个条目,DOM 节点 16.5 万,load 4.6s。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 为空;面包屑、侧栏展开按钮的可访问名不完整。
| 现象 | 实测 | 规模 |
|---|---|---|
「下一篇/上一篇」指向缺 /docs 前缀的路径 | 在 /topics/jrtqp/ 点「下一篇 静态网页托管服务」→ https://onedayxyy.cn/30.专题/20.博客/14.静态网页托管服务 → 404 | 317 个唯一链接全 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、一处不带。
复现路径(新鲜标签、清缓存,连续 3 次稳定复现):
#search-modal 仍 display:none,window.TeekSearch === undefined;根因在代码里:quick-menu.min.js 是用 capture 阶段 stopPropagation 处理点击,而搜索脚本的懒加载监听挂的是 window 上的 pointerdown/touchstart/keydown,两者抢手势;TeekSearch.open() 未就绪时返回 false,静默失败。建议:TeekSearch 未定义时排队而不是丢弃,或给按钮加 disabled 态 + “加载中"反馈。用户遇到就是"搜索坏了”。
index.json.gz = 1.9MB(未压缩 json 9.8MB),响应头 Cache-Control: public, max-age=0, must-revalidate —— 每次都得回源校验,等于每次首搜都要重下。max-age+immutable(配合版本号 query),并把索引再切分/按需加载。/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),把这几个外链搬过来就干净了。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/ 只约束爬虫,不约束人。/rss.xml、/index.xml、/atom.xml、/search/ 均 404(/feed 是好的,但常见猜法是前面几个)。/404.html 返回 200 而不是 404,且没有 noindex,可能被收录。archives/ 页预加载了 mu.baimu.live 的图)。<h1> 存在但配图 alt 大量为空(见缺点 5)。这是一份"审美和性能都在线、工程收尾没做完"的作品。 视觉、主题深度、本地搜索、pjax、缓存策略都能看出作者是真下了功夫的;但"上一篇/下一篇 317 个链接全 404"“面包屑 301 个 404"“搜索第一次点没反应"这三个,属于读者每天都会踩的坑——它们不影响你拿这份站去展示,但会让访问者觉得"这站没人维护了”。
优先级我建议就按这个顺序修:①入口链接统一 URL 生成 → ②搜索懒加载竞态 → ③索引缓存头 → ④侧栏异步化(省 500KB/页)→ ⑤外链图搬回自家图床 + 补安全头。前三项加起来工作量不大,收益最大。
赞赏 · 公众号

One的公众号
爱折腾博客的小白