【问题标题】:Twig {% include %} generates undesirable whitespaceTwig {% include %} 生成不需要的空格
【发布时间】:2013-12-16 12:44:31
【问题描述】:

我在index.twig 中有这段代码(sn-p 格式完全如图所示):

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

这是我的_nav.twig(sn-p 的格式也完全如图所示):

<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>

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

Twig 会像这样包含不必要的空格:

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

我在&lt;div&gt;{% include|trim(" ") 周围尝试了{%- include -%}{% spaceless %},但它们都没有成功摆脱空白。我怎样才能摆脱这些空白?

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

【问题讨论】:

  • 您的文件是否使用 UTF8- 无 BOM 编码?
  • @Tib 以前用过,但是所有文件都转成UTF-8了。 _nav.twig 是一个新文件。
  • @Tib 我撒了谎 - 结果我留下了一个未转换的文件。然而,这让我发现没有 BOM 的 UTF-8 编码的文件没有这个问题。
  • 看起来像Twig used to not like BOM at all。我想知道这是否与我的问题有关?

标签: php twig


【解决方案1】:

您只需将编码更改为没有 BOM 的 UTF8。 当你使用函数include时会发生这种情况,我猜Twig也是如此。

这里有相关问题:https://stackoverflow.com/a/10200440/1235943

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

【讨论】:

    【解决方案2】:

    您的 _nav.twig 中有错误吗? 看这里: li&gt;&lt;a

    【讨论】:

    • 哎呀 - 这不在原始代码中。固定的。但是,该错误与该错字无关。
    • {% include 怎么样。那里需要空间吗?
    • 很确定 Twig 可以很好地解析它们。正如我所说,我最原始的代码是{% include "_nav.twig" %}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2012-07-15
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多