GitHub Pages使用Jekyll时html子目录下文件模板语法未生效问题
问题原因说明
该问题是Jekyll的默认渲染规则导致的,核心原因如下:
- Jekyll只会对带有
--- ---包裹的前置元数据、且处于Jekyll可识别渲染路径下的文件做模板解析,否则会直接作为静态资源原样返回。 - 你自定义的
/html目录不属于Jekyll默认的可渲染目录范围,Jekyll不会主动扫描该目录下的文件做Liquid语法解析、组件注入等操作,因此你写的前置元数据、{% include foo.html %}这类模板语句都会被当成普通文本直接输出。
修复方案
你可以通过修改Jekyll配置解决该问题:
- 打开站点根目录的
_config.yml文件,添加include配置项,指定Jekyll需要额外扫描处理的目录:
include: - /html
- 确认
/html目录下所有需要用到模板能力的HTML文件顶部都有前置元数据标识,哪怕你没有任何自定义元数据需要填写,也必须保留空的前置元数据块:
--- ---
这是Jekyll识别模板文件的必要标志,省略的话文件依旧会被当做静态资源输出。
3. 你可以直接通过permalink配置修改/html下文件的输出路径,不需要额外在根目录放虚拟index.html:
比如给/html/index.html添加如下前置元数据,就能让它直接作为站点根路径的首页输出,访问站点根路径时会直接加载该文件:
--- permalink: /index.html ---
内容的提问来源于stack exchange,提问作者farAndAway
相关产品推荐
相关产品推荐

