Sir*_*ton 39

只需在文档中阅读有关它的内容,不确定它是否也适用于{% block ... %}标记. Twig空白控制

{% set value = 'no spaces' %}
    {#- No leading/trailing whitespace -#}
    {%- if true -%}
        {{- value -}}
    {%- endif -%}
{# output 'no spaces' #}
Run Code Online (Sandbox Code Playgroud)

还有另一个例子,它修剪了变量前面的空白,但最后没有这样做 - 所以效果只在一边.

{% set value = 'no spaces' %}
    <li>    {{- value }}    </li>
{# outputs '<li>no spaces    </li>' #}
Run Code Online (Sandbox Code Playgroud)

上面的示例显示了默认的空白控件修饰符,以及如何使用它来删除标记周围的空格.修剪空间将消耗标记该侧的所有空白.可以在标签的一侧使用空白修剪

所以我认为你给出的exmaples的不同之处在于,在第一个块中body,块开始后会有一个空格.在你的第二个例子中body -,块开始后没有.只需阅读文档条目即可了解其工作原理.

编辑

一个简单的例子来演示文档中的示例:

{% set value = 'NO space in source code after/before "value"' %}
<li>    {{- value -}}    </li>
...
Run Code Online (Sandbox Code Playgroud)

Firebug中的输出在HTML标记中: 没有空格的价值

而这一点

{% set value = 'space in source code after "value"' %}
<li>    {{- value }}    </li>
...
Run Code Online (Sandbox Code Playgroud)

.OUPUTS:

">

注意</li>第二个示例中"value"和结束之间的空格.因此,负号-在例如变量之前,之后或两侧擦除/修剪空白.