679 字
2 分钟
Jekyll 构建报错排查手册:10 个最常见错误与修复步骤
Jekyll 的问题往往不是“大故障”,而是被一堆小问题反复打断:今天 front matter 报错,明天 gem 版本冲突。 这篇文章把我最常遇到的 10 类构建错误整理成标准排查流程。
1. bundler: command not found: jekyll
原因:本地依赖未安装完整。
修复:
bundle installbundle exec jekyll serve如果你是新机器,先确认 Ruby 与 Bundler 已安装。
2. Front Matter 解析失败
常见错误信息:
YAML Exception reading ...高频原因:
---没有成对出现- 缩进混用空格和 tab
title等字段含未转义特殊字符
修复建议:
- 先从报错文件顶部 30 行开始查
- 用 2 空格统一缩进
3. 日期格式导致文章不显示
原因:date 字段格式非法或未来时间策略不一致。
检查:
- 是否使用
YYYY-MM-DD HH:MM:SS _config.yml中future设置是否符合预期
4. 端口占用,服务启动失败
报错示例:
Address already in use - bind(2)修复:
lsof -i :4000kill -9 <PID>bundle exec jekyll serve --port 40015. 中文路径或编码问题
有些系统环境下,非 UTF-8 文件会导致解析异常。
建议:
- Markdown 文件统一 UTF-8
- 文件名尽量使用英文、数字、连字符
6. 插件环境差异(本地能跑,线上失败)
原因:本地插件和 GitHub Pages 支持插件集合不一致。
处理:
- 优先使用 GitHub Pages 白名单插件
- 或改成 Actions 自构建后发布
_site
7. Liquid 语法错误
常见在 include 和循环中。
示例问题:
- 标签未闭合
- 变量名拼错
- 条件判断写法不合法
排查技巧:
- 从最近改动的布局文件开始定位
- 临时注释可疑块做二分排查
8. 资源路径 404
多见于 baseurl 配置不一致。
建议:
- 本地和线上都统一通过 “ 拼路径
- 图片与脚本避免硬编码绝对路径
9. 增量构建缓存导致“改了不生效”
修复:
bundle exec jekyll cleanbundle exec jekyll serve10. 依赖版本冲突
症状:更新 gem 后突然无法构建。
处理流程:
- 先看
Gemfile.lock变更 - 回退到上一个可用锁版本
- 分批升级 gem,不要一次性全升
一套通用排查流程
- 先看第一条报错,不要被后续连锁错误干扰
- 锁定“最近修改文件”优先检查
- 先恢复可构建,再做优化
总结
Jekyll 排错的关键是流程化,而不是临时猜测。 把这 10 条高频问题掌握后,90% 的构建故障都能快速定位。
延伸阅读
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Jekyll 构建报错排查手册:10 个最常见错误与修复步骤
https://levifree.dpdns.org/posts/jekyll-build-errors-troubleshooting/ 部分信息可能已经过时
相关文章 智能推荐
1
Jekyll SEO 技术优化清单:从可抓取到可排名的实战配置
Jekyll Sitemap、结构化数据、Canonical 与内容聚合页,给个人博客一套可执行的 SEO 基线
2
Jekyll 博客内容质量清单:发布前 15 分钟自检模板
Jekyll 把“写完就发”升级为“可复用资产”:覆盖可读性、SEO、可信度和合规
3
GitHub Actions 实战:为 Jekyll 博客搭建自动化质量检查流水线
GitHub Actions 每次提交自动检查 Markdown、死链与构建状态,减少线上翻车
4
Docker Compose 网络与 DNS 故障排查:容器互通失败怎么查
Docker 从服务名解析、端口映射到网络隔离,系统定位 `connection refused` 与 `name not resolved`
5
Nginx 502/504 排错指南:反向代理常见故障的定位与修复
Nginx 从上游服务、超时配置到网络连通性,一步步排查 Bad Gateway 和 Gateway Timeout


