Shopify 根据页面URL使用Liquid显示不同的.js嵌入

Shopify 根据页面URL使用Liquid显示不同的.js嵌入,shopify,liquid,Shopify,Liquid,我正在尝试让Shopify集合页面根据当前页面的URL在页面的特定部分显示不同的.js嵌入 这可以使用{%if page.url==%}来完成吗?如果可以,我如何拥有页面url和特定嵌入代码的变体 页面URL如下所示: <script type="text/javascript" src="https://apps.example.com/app/js/18218989163.js"></script>``` https://ww

我正在尝试让Shopify集合页面根据当前页面的URL在页面的特定部分显示不同的.js嵌入

这可以使用
{%if page.url==%}
来完成吗?如果可以,我如何拥有页面url和特定嵌入代码的变体

页面URL如下所示:

<script type="text/javascript" src="https://apps.example.com/app/js/18218989163.js"></script>```
https://www.example.com/collections/technology/technology-connected-home

嵌入代码如下所示:

<script type="text/javascript" src="https://apps.example.com/app/js/18218989163.js"></script>```
```

每个Shopify商店都有不同类型的页面:索引(又名主页)、产品、收藏、页面、博客、文章和购物车。下面是页面类型的列表

因此,此
page.url
仅适用于
page
类型的页面对象。对于所有其他类型,您需要使用适当的页面对象来获取
url

  • collection.url
  • product.url
  • 等等
在您的情况下,我建议使用
case/when
,将您的逻辑添加到代码段中,然后
主题.liquid
中呈现它

以下是一个例子:

{% if request.page_type == 'page' %}
  {% case page.url %}
    {% when '/pages/about-us' %}
      {{ 'pages__about-us.js' | script_tag }}
    {% when '/pages/contact-us' %}
      {{ 'pages__contact-us.js' | script_tag }}
    {% else %}
      {{ 'pages__generic.js' | script_tag }}
  {% endcase %}
{% endif %}

在创建
案例之前/创建时,您必须检查
请求。page\u type
,或者另一种方法是检查代码段顶部的类型,如:

{% comment %} Set page object type {% endcomment %}
{% case request.page_type %}
  {% when 'page' %}
    {% assign page_object = page %}
  {% when 'collection' %}
    {% assign page_object = collection %}
  {% when 'product' %}
    {% assign page_object = product %}
{% endcase %}

{% comment %} Load JS based on page URL{% endcomment %}
{% case page_object.url %}
  {% when '/pages/about-us' %}
    {{ 'pages__about-us.js' | script_tag }}
  {% when '/pages/contact-us' %}
    {{ 'pages__contact-us.js' | script_tag }}
  {% else %}
    {{ 'pages__generic.js' | script_tag }}
{% endcase %}
这不是一个防弹的解决方案,但是它应该足以让您在它之上构建


祝你好运

每个Shopify商店都有不同类型的页面:索引(又名主页)、产品、收藏、页面、博客、文章和购物车。下面是页面类型的列表

因此,此
page.url
仅适用于
page
类型的页面对象。对于所有其他类型,您需要使用适当的页面对象来获取
url

  • collection.url
  • product.url
  • 等等
在您的情况下,我建议使用
case/when
,将您的逻辑添加到代码段中,然后
主题.liquid
中呈现它

以下是一个例子:

{% if request.page_type == 'page' %}
  {% case page.url %}
    {% when '/pages/about-us' %}
      {{ 'pages__about-us.js' | script_tag }}
    {% when '/pages/contact-us' %}
      {{ 'pages__contact-us.js' | script_tag }}
    {% else %}
      {{ 'pages__generic.js' | script_tag }}
  {% endcase %}
{% endif %}

在创建
案例之前/创建时,您必须检查
请求。page\u type
,或者另一种方法是检查代码段顶部的类型,如:

{% comment %} Set page object type {% endcomment %}
{% case request.page_type %}
  {% when 'page' %}
    {% assign page_object = page %}
  {% when 'collection' %}
    {% assign page_object = collection %}
  {% when 'product' %}
    {% assign page_object = product %}
{% endcase %}

{% comment %} Load JS based on page URL{% endcomment %}
{% case page_object.url %}
  {% when '/pages/about-us' %}
    {{ 'pages__about-us.js' | script_tag }}
  {% when '/pages/contact-us' %}
    {{ 'pages__contact-us.js' | script_tag }}
  {% else %}
    {{ 'pages__generic.js' | script_tag }}
{% endcase %}
这不是一个防弹的解决方案,但是它应该足以让您在它之上构建


祝你好运

我建议使用page.handle并识别句柄。我不相信page.url可以满足您的需要

我建议使用page.handle并识别句柄。我不相信page.url会满足您的需要

您也可以尝试一下,因为句柄永远不会更改

{% case page.handle %}
    {% when 'about-us' %}
      {{ 'pages_about-us.js' | script_tag }}
    {% when 'contact-us' %}
      {{ 'pages_contact-us.js' | script_tag }}
    {% else %}
      {{ 'pages_generic.js' | script_tag }}
  {% endcase %}

您也可以尝试此操作,因为句柄永远无法更改

{% case page.handle %}
    {% when 'about-us' %}
      {{ 'pages_about-us.js' | script_tag }}
    {% when 'contact-us' %}
      {{ 'pages_contact-us.js' | script_tag }}
    {% else %}
      {{ 'pages_generic.js' | script_tag }}
  {% endcase %}