故障排查
本页按症状组织。找到你的现象,按步骤排查。
页面完全没有样式(裸奔)
症状:网页能打开,但只有黑白文字,没有布局与配色。
第 1 步:看控制台
浏览器 F12 → Network,筛选 404。若 css/style.css 是 404,说明资源路径错了。
最常见原因是站点 _config.yml 的 root 与部署路径不一致。
第 2 步:核对 root
| 部署方式 | url |
root |
|---|---|---|
| 独立域名 | https://www.example.com |
/ |
| GitHub Pages 项目站点 | https://user.github.io/repo |
/repo/ |
| 子目录 | https://example.com/org |
/org/ |
第 3 步:重新构建
1 | hexo clean && hexo generate |
构建后检查 public/css/style.css 是否存在。
判断是不是路径问题
直接在浏览器访问 你的域名/css/style.css。能打开 = 路径对(那问题在别处);404 = 就是 root 配置问题。
某个首页板块不显示
症状:sections 里明明写了,页面却没有。
排查顺序:
- 核对拼写 —— 板块名必须与
layout/_partial/section-<name>.ejs完全一致(注意quicklinks结尾的s)。 - 检查配置节点 —— 例如
services板块需要services.items有内容;空数组会渲染成空白区域。 - 检查
about-contact—— 它是合并板块,文案取自about与contact,且需about-contact.enable不为false。 - 确认改的是生效配置 —— 站点覆盖文件优先于主题默认值。
1 | # 快速核对板块名与模板文件名 |
导航点击 404
症状:点导航项跳到不存在的页面。
| 原因 | 现象 | 修复 |
|---|---|---|
| 页面文件不存在 | /about/ 404 |
hexo new page about 生成 source/about/index.md |
页面写成了 about.md |
生成 /about.html,/about/ 404 |
改为目录 + index.md |
| 链接没写全 | /about(无尾斜杠)在部分托管上 404 |
统一写 /about/ |
| 菜单指向未建的目录 | 如 /products/ 但没有该页面 |
创建页面或从 menu 中移除 |
新闻列表 / 归档为空
症状:/news/ 或 /archives/ 没有内容。
source/_posts/下是否有文章?没有就先hexo new post "标题"。/news/页面的 front-matter 是否有layout: news?- 生成器是否装齐?缺
hexo-generator-archive时/archives/根本不会生成:
1 | npm i hexo-generator-index hexo-generator-archive hexo-generator-category hexo-generator-tag |
构建报错
EJS 渲染器缺失:
1 | npm i hexo-renderer-ejs |
生成器缺失,补装四个 generator(见上一节)。
front-matter 中的值含冒号却没加引号,例如:
1 | title: 合作: 新起点 # 错误 |
theme: hexo-theme-xongyi 与 themes/ 下的实际目录名不一致。用 ls themes/ 核对,注意大小写。
永远从
排查构建类问题,第一步都是 hexo clean && hexo generate,先把缓存因素排除掉。
改了 _config.hexo-theme-xongyi.yml 不生效
症状:配置明明改了,页面还是旧的。
- 文件名必须是
_config.hexo-theme-xongyi.yml,且放在站点根目录(与_config.yml同级); - 主题名要与
theme: hexo-theme-xongyi完全对应(Hexo 按主题名查找该覆盖文件); hexo clean && hexo generate;- 若 YAML 缩进错了,Hexo 可能静默忽略 —— 用在线 YAML 校验器检查一下。
YAML
用空格缩进(不要 Tab),同级键对齐。一个缩进错误可能导致整段配置被丢弃而不报错。
暗色模式 / 动画异常
| 症状 | 原因 | 处理 |
|---|---|---|
| 暗色模式点了没反应 | features.dark_mode 被设为 false |
检查配置 |
| 内容一直”隐身”(不淡入) | reveal 动画被浏览器 / 系统禁用,或自定义 CSS 覆盖了透明度 |
关掉 features.reveal,或检查注入的 CSS |
| 数字统计不滚动 | features.stats_animation: false |
打开该开关 |
| 系统开了”减弱动态效果”后动画消失 | 主题遵循 prefers-reduced-motion |
预期行为,不是 bug |
reveal
若你的自定义 CSS 给元素设了 opacity: 0 之类的初始状态,可能与 reveal 动画叠加。排查时先临时关掉 features.reveal。
部署后与本地不一致
| 症状 | 原因 | 处理 |
|---|---|---|
| 线上样式错乱 | 线上 root 与本地不一致 |
用 --config _config.yml,_config.pages.generated.yml 方式自动生成(见一键部署) |
| 主题目录为空 / 构建失败 | 主题是 submodule,CI 没拉取 | checkout 加 submodules: recursive |
| 新增页面线上 404 | 只推了源码没触发重新构建 | 检查 CI 是否在 main 上触发,或手动重新部署 |
| 图片 404 | 图片没提交(在 .gitignore 里)或被大文件限制 |
检查 git status 与仓库设置 |
诊断信息收集
提 Issue 前,把这些信息一并附上能大幅加快定位:
1 | node -v |
并说明:操作系统 / 本地还是线上 / 具体页面地址 / 控制台报错截图。
评论