在一个简单的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的新手,但我想不出这种行为的原因.我究竟做错了什么?
这看起来很疯狂,但似乎液体发动机需要周围的空间==
.所以这应该工作:
<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
但这应该解决你的直接问题.