17
改完 product-card snippet 后商品列表整段变空白,保存时报 Liquid syntax error: for tag was never closed,但它指的行号落在一个 {% if %} 里面,看不出到底哪一层没闭合。
改完 product-card snippet 后商品列表整段变空白,保存时报 Liquid syntax error: for tag was never closed,但它指的行号落在一个 {% if %} 里面,看不出到底哪一层没闭合。
先把判断放在前面:Liquid 解析器是从最内层开始回退配对的,报出的行号是它放弃解析的位置,不是真正的出错点;注释块里残留的结束标签也会让配对整体错位。
{% comment %} 和 {% raw %} 里被注释掉的旧循环整段删掉——Liquid 不解析注释内容,但标签配对照样计算,少一个 {% endfor %} 就会连带后面全部错位。for / if / case / form 四类标签的结束标签是否齐全,重点是嵌套两层以上的地方。{% liquid %} 写法替换掉散落的单行标签,一个逻辑块内只用一个 {% liquid %},漏写的情况肉眼可见。shopify theme check,Liquid 语法类错误会精确到具体标签层级,比后台报错可靠。theme check 的 Liquid 类错误归零。再补一个定位技巧:二分注释。把 snippet 后半段用 {% comment %} 包起来,错误消失说明问题在后半段,再折半,四五轮就能锁到那几行,比按行号猜快得多。
确实是 {% comment %} 里留了一个 {% endfor %},删掉立刻好了。行号真的完全没参考价值。
写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。