修改Jekyll文件夹结构后自定义布局失效问题求助
解决Jekyll自定义布局被忽略的问题
我帮你梳理下问题的核心原因,以及对应的修复方案:
1. 布局文件夹名称错误(最关键)
Jekyll的布局系统默认只识别名为_layouts的文件夹(注意是复数形式),但你的目录里写的是jekyll/_layout(单数)——哪怕你在include里配置了这个路径,Jekyll也不会把它当作布局目录来处理,这是第一个核心问题。
先把你的文件夹重命名:
jekyll/_layout → jekyll/_layouts
2. _config.yml路径配置错误
你设置了source: ./..(也就是项目根目录),所以Jekyll所有路径解析都是基于根目录的,而不是jekyll文件夹本身。你原来的include配置写的是./_layout,相当于让Jekyll去根目录找_layout文件夹,但你的布局实际在jekyll/_layouts里,自然找不到。
修正后的jekyll/_config.yml应该是这样:
theme: jekyll-theme-cayman source: ./.. destination: ./../docs include: # 路径相对于source(项目根目录) - jekyll/_layouts - jekyll/assets exclude: # 排除jekyll文件夹里不需要Jekyll处理的文件,避免干扰 - jekyll/_config.yml # 如果jekyll里还有其他非必要文件,也可以加在这里
3. 确保Markdown文件正确引用布局
在根目录的README.md、about.md等文件的YAML头部,要明确指定你想用的自定义布局(布局文件名不含.html后缀):
--- layout: my-custom-layout # 对应jekyll/_layouts/my-custom-layout.html --- # 你的内容...
验证方法
运行Jekyll时加上--verbose参数,查看日志确认布局文件是否被正确加载:
cd jekyll jekyll build --verbose
在输出里找类似这样的内容,就说明布局被正确识别了:
Reading: ./jekyll/_layouts/my-custom-layout.html
这样调整后,你的自定义布局应该就能正常生效了,同时也保持了你想要的低侵入性目录结构。
内容的提问来源于stack exchange,提问作者Claudenir Fonseca
相关产品推荐
相关产品推荐

