You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jekyll中<head>内Liquid语法为何显示在<body>而非正常解析?

解决Jekyll中内Liquid语法跑到显示的问题

排查与修复步骤

  • 先检查HTML结构的闭合问题(最容易踩坑!)
    很多时候这种问题都是因为<head>标签没正确闭合,或者<body>标签提前打开了。比如你在布局文件(比如_layouts/default.html)里可能不小心漏写了</head>,导致Jekyll把本该在里解析的Liquid代码直接丢到里。

    举个错误的例子:

    <head>
      <meta charset="utf-8">
      {% seo %}
      <!-- 这里漏了</head>!直接开<body>了 -->
    <body>
    

    一定要确认<head>有完整的闭合标签,而且必须在<body>标签之前。

  • 检查Liquid语法是否完整无错误
    你提到的描述标签里的Liquid代码好像没写完({% if page.excerpt %}{{ page.ex...),如果Liquid代码有语法错误(比如缺了{% endif %}),Jekyll就会直接把这段代码原封不动输出到页面上。正确的写法应该是完整的条件判断:

    <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
    

    另外,要确保page.excerpt能正常工作——在_config.yml里加一行excerpt_separator: "<!-- more -->",然后在你的文章里用这个分隔符来生成摘要。

  • 确认jekyll-seo-tag的配置和使用没问题

    1. 先检查_config.yml里有没有正确配置seo插件:
      title: 你的站点名称
      description: 站点的默认描述
      author:
        name: Gino Ludikhuyze
      plugins:
        - jekyll-seo-tag
      
    2. 确保{% seo %}标签是直接放在<head>里面的,没有被嵌套在其他未闭合的HTML标签里。
  • 清理缓存后重新构建
    Jekyll有时候会缓存旧的渲染结果,哪怕你改了代码也不生效。试试这两条命令彻底清理后重新生成:

    bundle exec jekyll clean
    bundle exec jekyll build
    
  • 检查模板文件的扩展名
    要确保你的布局文件和页面文件是.html或者.md格式(如果是md文件,记得在前端 matter里指定布局),要是用了.txt之类的扩展名,Jekyll不会解析里面的Liquid语法,自然会直接输出到页面上。


内容的提问来源于stack exchange,提问作者Gino Jan Ludikhuyze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:49:36