我试图将JS文件合并到一个文件中,但是我需要使用js文件中的if语句设置条件。
我创建了file.js.liquid但它似乎没有工作;我添加了一个测试例如:
{% if template contains 'index' %}
console.log('homepage loaded');
{% endif %}
我想做的事情的例子当然有很多我需要做的事。
{% if settings.the_simpsons_enabled and settings.simpsons_video_enable %}
// video popup
$(".video-popup").videoPopup();
{% endif %}
条件语句在scss.liquid文件中也不起作用:
{% if template contains 'index' or template contains 'collection' or template contains 'product' %}
@import url("{{ 'owl.carousel.scss' | asset_url }}");
{% endif %}
任何想法为什么如果不工作或甚至可能?我认为它是一个流动的文件。
答案 0 :(得分:1)
像CSS或JS这样的文件的Liquid扩展允许使用Liquid变量但不允许使用语句。
所以{{write_my_liquid_var_here}}会起作用。 {%if liquid_statement%}做某事{%endif%}不会。
答案 1 :(得分:1)
关于Shopify和SASS
以下内容无法使用,因为您无法在Shopify的SASS文件中使用@import
。
@import url("{{ 'owl.carousel.scss' | asset_url }}"); //This will not work
关于在.js.liquid文件中使用条件液体语句
我对这个主题一无所知,但我确实知道以下两件事。
1)查看this thread,你会发现这种类型的语句不起作用,因为js文件是独立于普通液体模板解析的,所以它不知道你和哪个模板#39;重新观看。
{% if template contains 'index' %} //This will not work
放置上述逻辑的更好位置将位于</body>
标记上方的theme.liquid文件的底部。但是,这不会帮助您使用一个JavaScript fie来减少HTTP请求的目标。
2)但是,你可以访问settings_data.json文件中的值
{% if settings.the_simpsons_enabled and settings.simpsons_video_enable %} //This will work
我希望这会有所帮助