You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Eleventy-img短代码中正确渲染Nunjucks变量?

解决Eleventy Nunjucks中image短代码无法解析变量的问题

问题出在你给image短代码传参时,用双引号包裹了变量模板语法{{foo.src}},导致Nunjucks将其当作纯字符串字面量处理,而非解析变量的值。Eleventy会尝试查找名为{{foo.src}}.png的文件,自然会出现文件不存在的错误。

修正方案

直接传递变量名,不需要添加双引号和模板语法包裹,因为短代码本身处于Nunjucks模板上下文内,可以直接引用变量:

{% for foo in bar %}
    {% image foo.src, "alt", "sizes", "imgClass" %}
{% endfor %}

如果alt、sizes、imgClass这些参数也需要使用变量(比如来自foo对象的属性),同样直接传递变量名即可:

{% for foo in bar %}
    {% image foo.src, foo.alt, foo.sizes, foo.imgClass %}
{% endfor %}

原理:Eleventy的Nunjucks短代码参数支持直接引用模板上下文里的变量,当参数是不带引号的标识符时,Nunjucks会自动解析它对应的变量值,而非当作字符串处理。

内容的提问来源于stack exchange,提问作者Gerrit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:16:38