Twig {%include%}生成不合需要的空格

时间:2013-12-16 12:44:31

标签: php twig

我在index.twig中使用了此代码(完全按照显示格式化了代码段):

<div style="width: 12.5%; float: left; text-align: left; padding-right: 7.5px; padding-top: 5px;">{% include "_nav.twig" %}</div>

这是我的_nav.twig(代码段也完全如图所示格式化):

<nav>
    <ol class="linkSection">        
        <li><a href="index.php">Index</a></li>
        <li id="nav-expand-collapse" class="isCollapsed"><a href="#">Expand All</a></li>
    </ol>

    <ol class="linkSection">
        <li class="h2">Research</li>
        <li><a href="index.php?p=research_intro">Introduction</a></li>
        <li><a href="index.php?p=research_intro">Foo</a></li>
        <li><a href="index.php?p=research_intro">Bar</a></li>
        <li><a href="index.php?p=research_intro">Spam</a></li>
        <li><a href="index.php?p=research_intro">Eggs</a></li>
    </ol>
</nav>

这是预期的输出(注意标题与索引链接之间缺少空格:

Expected Output

如果Twig会包含不必要的空格,那么会发生什么:

Actual Output

这是我在Chrome开发控制台中看到的(请注意""):

enter image description here

我在{%- include -%}{% spaceless %}周围尝试了<div>{% include|trim(" "),但没有一个能够成功摆脱空白。我怎样才能摆脱这些空白?

所有文件都以UTF-8编码。当我编码为没有BOM的UTF-8时,问题似乎消失了。

2 个答案:

答案 0 :(得分:3)

您只需将编码更改为UTF8而无需BOM。 当你使用函数include时会发生这种情况,我想这与Twig相同。

此处的相关问题:https://stackoverflow.com/a/10200440/1235943

  

将页面保存为UTF-8时,称为字节顺序的特殊签名   标记(或BOM)包含在文件的开头,表示   它是一个UTF-8文件。您只能看到具有低级文本的BOM   编辑器(如DOS编辑)。您需要从中删除此签名   包含文件,以摆脱顶部的空白区域   页。

答案 1 :(得分:1)

您的_nav.twig是否有错误? 看这里: li><a