如何防止 URL 在 liquid 模板中编码字符串?
how to prevent URL encoding a string in liquid templates?
我将一些字符串混合在一起并在图像节点上渲染,如下所示:
{% capture src %}
{{'https://example.com/'}} {{ padded }} {{'.jpg'}}
{% endcapture %}
<td><img src="{{ src }}" />src</td>
但出于某种原因,它是 URL 编码 padded
变量的值(在我的例子中是“0004”。所以最终输出看起来像
<td><img src="https://example.com/%200004%20.jpg"/></td>
我如何不URL编码padded
变量?
不幸的是,如果我这样做,它也会做同样的事情
<img src="https://example.com/{{padded}}.jpg"/>
我误解了 capture
的行为。 Capture 从字面上获取内容,就好像它们是渲染的一样,因此它将 }}
和 {{
之间的空格作为文字空格,然后对其进行 URL 编码。
捕获开始于},结束于{。所以当你捕获
{{'https://example.com/'}} {{ padded }} {{'.jpg'}}
这给出 |https://example.com/ 0004 .jpg|
当然,其中的 space 是 url 编码的。
尝试{{'https://example.com/'}}{{ padded }}{{'.jpg'}}
我将一些字符串混合在一起并在图像节点上渲染,如下所示:
{% capture src %}
{{'https://example.com/'}} {{ padded }} {{'.jpg'}}
{% endcapture %}
<td><img src="{{ src }}" />src</td>
但出于某种原因,它是 URL 编码 padded
变量的值(在我的例子中是“0004”。所以最终输出看起来像
<td><img src="https://example.com/%200004%20.jpg"/></td>
我如何不URL编码padded
变量?
不幸的是,如果我这样做,它也会做同样的事情
<img src="https://example.com/{{padded}}.jpg"/>
我误解了 capture
的行为。 Capture 从字面上获取内容,就好像它们是渲染的一样,因此它将 }}
和 {{
之间的空格作为文字空格,然后对其进行 URL 编码。
捕获开始于},结束于{。所以当你捕获
{{'https://example.com/'}} {{ padded }} {{'.jpg'}}
这给出 |https://example.com/ 0004 .jpg|
当然,其中的 space 是 url 编码的。
尝试{{'https://example.com/'}}{{ padded }}{{'.jpg'}}