在某些页面上禁用某些Shopify应用程序

在某些页面上禁用某些Shopify应用程序,shopify,shopify-app,Shopify,Shopify App,我们的商店上安装了大约20个应用程序。在不同的页面上使用不同的应用程序。例如,有些应用程序仅在产品页面上使用 然而,我看到所有的应用程序都加载在每个页面上。查看页面源代码,我看到JavaScript函数asyncLoad,它是内置{{content\u for_header}}变量的一部分。此函数用于为每个页面上的所有应用加载脚本。那么,我可以限制一下吗?我的意思是-避免下载脚本/css/任何我在特定页面上不使用的应用程序。例如,在主页上,我只需要几个活跃的应用程序,而不是全部20个。没有在do

我们的商店上安装了大约20个应用程序。在不同的页面上使用不同的应用程序。例如,有些应用程序仅在产品页面上使用


然而,我看到所有的应用程序都加载在每个页面上。查看页面源代码,我看到JavaScript函数
asyncLoad
,它是内置
{{content\u for_header}}
变量的一部分。此函数用于为每个页面上的所有应用加载脚本。那么,我可以限制一下吗?我的意思是-避免下载脚本/css/任何我在特定页面上不使用的应用程序。例如,在主页上,我只需要几个活跃的应用程序,而不是全部20个。没有在docs或Google中找到答案。

听起来你已经了解了很多Shopify如何允许应用程序加载脚本,所以你已经了解了很多

当我需要有选择地禁用应用程序时,我已使用如下方法将其从
asyncLoad
函数中删除:

{% capture modified_content_for_header %}{{ content_for_header }}{% endcapture %}
{% if template.name == 'index' %}
  {% assign modified_content_for_header = modified_content_for_header | remove: 'some_app_url.js,' %}
{% endif %}
<!-- If you have a lot of templates you are checking, a case/when using template.name might be appropriate -->
{{ modified_content_for_header }}
{%capture-modified\u-content\u-for-u-header%}{{content\u-for-u-header}}{%endcapture%}
{%if-template.name=='索引'%}
{%assign modified_content_for_header=modified_content_for_header | remove:'some_app_url.js,'%}
{%endif%}
{{修改了{u头的}内容}

我喜欢使用{%if==value%}而不是{%if template contains value%}进行模板检查,因为这样可以确保我不会因为某种原因(比如
集合、替代产品布局
或诸如此类的傻事)意外地得到包含其他模板类型之一的模板后缀的假阳性

免责声明:删除第三方应用程序的脚本文件可能会产生意外的副作用,因此务必谨慎行事,并对未发布的主题进行彻底测试