【问题标题】:how to prevent URL encoding a string in liquid templates?如何防止 URL 编码液体模板中的字符串?
【发布时间】:2015-01-01 05:52:48
【问题描述】:

我将一些字符串混合在一起并在图像节点上渲染,如下所示:

 {% 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"/>

【问题讨论】:

    标签: templates escaping jekyll liquid url-encoding


    【解决方案1】:

    捕获从 } 开始,在 { 结束。所以当你捕捉到

    {{'https://example.com/'}} {{ padded }} {{'.jpg'}}
    

    这给了|https://example.com/ 0004 .jpg|

    其中的空格自然是 url 编码的。

    试试{{'https://example.com/'}}{{ padded }}{{'.jpg'}}

    【讨论】:

      【解决方案2】:

      我误解了capture 的行为。 Capture 从字面上获取内容,就好像它们被渲染一样,因此它将}}{{ 之间的空格作为文字空格包含在内,然后对 URL 进行编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 2012-08-29
        • 1970-01-01
        • 1970-01-01
        • 2018-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多