在某些页面上禁用某些 Shopify 应用
Disable certain Shopify apps on certain pages
我们商店安装了大约 20 个应用程序。不同的页面使用不同的应用程序。例如,有些应用仅在产品页面上使用。
但是我看到每个页面上都加载了所有应用程序。查看页面源代码,我看到 JavaScript 函数 asyncLoad
是内置 {{ content_for_header }}
变量的一部分。此函数为每个页面上的所有应用程序加载脚本。那么,我可以以某种方式限制它吗?我的意思是 - 避免下载 scripts/css/whatever 我不在特定页面上使用的应用程序。例如,在主页上我只需要激活几个应用程序,而不是全部 20 个。未在文档或 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 }}
我喜欢使用 {% if template.name == value %} 而不是 {% if template contains value %} 进行模板检查,因为这样可以确保我不会意外得到由于某种原因包含其他模板类型之一的模板后缀的误报,例如 collection.alternate_product_layout
或类似的愚蠢内容。
免责声明:通过删除脚本文件来扰乱第三方应用程序可能会产生意想不到的副作用,因此请务必谨慎行事并在未发布的主题上进行彻底测试!
我们商店安装了大约 20 个应用程序。不同的页面使用不同的应用程序。例如,有些应用仅在产品页面上使用。
但是我看到每个页面上都加载了所有应用程序。查看页面源代码,我看到 JavaScript 函数 asyncLoad
是内置 {{ content_for_header }}
变量的一部分。此函数为每个页面上的所有应用程序加载脚本。那么,我可以以某种方式限制它吗?我的意思是 - 避免下载 scripts/css/whatever 我不在特定页面上使用的应用程序。例如,在主页上我只需要激活几个应用程序,而不是全部 20 个。未在文档或 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 }}
我喜欢使用 {% if template.name == value %} 而不是 {% if template contains value %} 进行模板检查,因为这样可以确保我不会意外得到由于某种原因包含其他模板类型之一的模板后缀的误报,例如 collection.alternate_product_layout
或类似的愚蠢内容。
免责声明:通过删除脚本文件来扰乱第三方应用程序可能会产生意想不到的副作用,因此请务必谨慎行事并在未发布的主题上进行彻底测试!