我想使用Liquid标记来测试正在查看的页面是否是主页(但特别是网站的根URL),例如www.mysite.com /
我尝试使用{{globals.get}},因为根据BC Documentation,这应该输出...
当前相对路径以及在URL中传递的查询参数。例如,对于URL http://mtica1.businesscatalyst.com/_s1/s2?a=1&b=2的输出 模块是:
{
"ID": "/_s1/s2",
"a": "1",
"b": "2"
}
[强调我的]
但是,Business Catalyst似乎并未始终如一地处理此Liquid标签。在网站根{{globals.get}}
输出{}
以及其他系统页面(例如电子商务布局)上,ID
将替换为CatalogueID: "xxxxx"
,其中xxxxx是目录的ID,不是完全是“当前的相对路径”!
毋庸置疑,我无法按预期输出ID: "/"
来定位网站根目录。
如何使用Liquid测试用户是否在根URL上?
答案 0 :(得分:3)
编辑:我在此答案的开头添加了另一个解决方案,但我已经将原始解决方案保留在下方,以便其他人可以看到我经历的流程。
虽然我对下面详述的解决方案没有任何问题,但由于BC中的“空白”没有记录,我宁愿选择一个解决方案,如果BC Dev团队进行更新,也不会有可能被破坏。
您可以使用以下Liquid标记检查您是否是站点根目录:
{module_pageaddress collection="page" template=""}
{module_siteUrl collection="site" template=""}
{% assign fullUrl = 'http://' | append: {{site.siteUrl}} | append: '/' -%}
{% if page.pageUrl == {{fullUrl}} -%}
// we are on the site root
{% else -%}
// we are not on the site root
{% endif -%}
您可以使用以下Liquid标记测试您是否在站点根目录:
{% if globals.get == blank -%}
// we are on the root URL - do something
{% else -%}
// we are not on the root URL
{% endif -%}
此处的“关键”信息是关键字空白。
我做了一些测试,发现由于{}
而输出{{globals.get}}
的唯一页面是根网址。 (注意:我没有对此进行详尽测试 - 如果您找到另一个输出{}
的页面,请发表评论
我尝试了{% if globals.get == {} -%}
,但这只是针对所有网页,因为它们都在{}
内有输出。
BC文档没有任何内容,但我发现this document提到了它并且惊讶,惊讶:它有效。
让我们只希望BC Dev团队不会改变阻止这种情况发生的事情。
答案 1 :(得分:-2)
实际上并不正确。 通过模块的系统页面和其他页面也会遇到这种情况。 Globals.get是数据,可以在主页上通过许多不同的内容发生,例如,如果您有谷歌分析或其他第三方跟踪,某些点击通过等等。 不幸的是,以上是一种非常不准确的方法。
你能解释一下你的目标是什么 - 为什么需要这个?