shopify中.js和.js.liquid之间有什么区别?

gue*_*est 8 shopify

在资产部分,有文件.js.js.liquid名称.

2之间有什么区别,如果我想将js文件包含到主题中,我应该使用哪一个?

这是在.js.liquid文件中.我想构造一个由液体变量组成的字符串.当我将这个字符串附加到DOM元素中时,它似乎没有显示出来.

var someString = '';
  {%for line in order.line_items%}
  someString += 'q='+{{line.quantity}}+'&p='+{{line.product.id}}+'&pp='+{{line.price}}+'&w='+{{line.grams}}+'&i='+{{line.product.featured_image|product_img_url|url_param_escape}}+'&n='+{{line.product.title|url_param_escape}}+'&';
  {%endfor%}

$('body').append(someString);
Run Code Online (Sandbox Code Playgroud)

Ste*_*arp 7

您可以在.js.liquid文件中使用 Liquid,但.js文件仅是 javascript。

如果您包含常规 js 文件,请使用.js扩展名。如果文件中也有液体,则需要使用.js.liquid.

编辑:

我认为无法order在文件中访问.js.liquid看这里

可以在订单电子邮件模板、结帐的感谢页面以及订单打印机等应用程序中访问订单对象。

另请参阅Shopify 论坛上的讨论

您只能在流动资产中使用液体过滤器和全局设置对象。

它的工作原理如下:每当您编辑 .js.liquid 文件的 .css.liquid 时,或者每当您编辑主题设置时,都会创建一个新的 .css 或 .js 文件,然后将其存储在我们的资产服务器上。以任何其他方式更新您的商店都不会更新这些文件......

鉴于上述情况,Shopify 无法公开这些文件中的商店信息(可能会更改)。

  • 简而言之:.js.liquid 和 .css.liquid 文件是静态的,而不是动态的。从 .js.liquid 和 .css.liquid 文件创建的已编译 js 和 css 资源仅在商店 settings.json 更改时才会更改,因此无法访问任何动态的商店、客户或会话信息。动态 javascript 必须存在于代码片段或主题文件中的脚本标记中。 (4认同)