Jekyll/Liquid字符串比较毫无意义

Pet*_*org 4 liquid jekyll

在一个简单的Jekyll网站中,我有一个看起来像这样的菜单:

<ul class="nav navbar-nav">
    <li {% if page.url=='/' %} class="active"{% endif %}><a href="/">Home</a></li>
    <li {% if page.url=='/page1.html' %} class="active"{% endif %}><a href="/page1.html">Page 1</a></li>
    <li {% if page.url=='/page2.html' %} class="active"{% endif %}><a href="/page2.html">Page 2</a></li>
    <li {% if page.url=='/page3.html' %} class="active"{% endif %}><a href="/page3.html">Page 3</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

当我page.url在此块之前或之后输出时,它始终包含期望值,即当前页面的路径,例如'/page2.html'.但是,它始终是Home选项卡,它接收'active'类,表明字符串比较成功并且page.url等于'/'.访问主页导致page.url包含'/index.html'而非'/' 的事实增加了这个谜团.

我是Jekyll和Liquid的新手,但我想不出这种行为的原因.我究竟做错了什么?

Nic*_*ell 6

这看起来很疯狂,但似乎液体发动机需要周围的空间==.所以这应该工作:

<ul class="nav navbar-nav">
    <li {% if page.url == '/' %} class="active"{% endif %}><a href="/">Home</a></li>
    <li {% if page.url == '/page1.html' %} class="active"{% endif %}><a href="/page1.html">Page 1</a></li>
    <li {% if page.url == '/page2.html' %} class="active"{% endif %}><a href="/page2.html">Page 2</a></li>
    <li {% if page.url == '/page3.html' %} class="active"{% endif %}><a href="/page3.html">Page 3</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我仍然不明白为什么第一次if返回,true但这应该解决你的直接问题.

  • 疯狂的语言!人们每天都必须对这个问题感到震惊.谢谢您的帮助. (2认同)