如何获得页面的绝对 URL?
How do I get the absolute URL of a page?
我可以使用 cmsfn.link
templating function 获取页面的相对 URL。例如:
cmsfn.link(content)
[# -- Returns /example-com/example-page-slug.html --]
如何获取页面的绝对 URL?例如:
https://example.com/example-page-slug.html
使用 sitefn
templating function 获取域并将其与 cmsfn.link
组合。例如:
[#assign site = sitefn.site(content)]
[#assign relativeURL = cmsfn.link(content)?remove_beginning("/" + site.name)]
[#assign domain = site.domains[0].name]
https://${domain + relativeURL}
理想情况下,您可以调用 LinkUtil.createExternalLink(content)
,不幸的是,此方法未直接暴露给模板(为什么????)。
您正在使用的替代方法是
[#assign domain = (state.originalBrowserURL?keep_before('?')?remove_ending(state.originalBrowserURI))!'']
通过站点读取域的不同之处在于,它为您提供用户当前在浏览器中使用的域,因此即使您将站点域配置为指向 public 实例,它也可以在作者实例上正常工作或者当您临时 运行 在您的本地主机上进行配置时等等。
在 Rendering Context Objects — Magnolia 6.2 中查看 state
的魔法。
[#-- Get / assign your path --]
[#assign path = state.originalURI]
[#-- Put it all together --]
[#assign absoluteUrl = 'https://example.com' + path]
[#-- Render it --]
${absoluteUrl}
如果您不喜欢对协议或域进行“硬编码”,请尝试从站点定义或 Magnolia Config 中获取它们。虽然,如何设置和检索这些属性各不相同。祝你好运。
我可以使用 cmsfn.link
templating function 获取页面的相对 URL。例如:
cmsfn.link(content)
[# -- Returns /example-com/example-page-slug.html --]
如何获取页面的绝对 URL?例如:
https://example.com/example-page-slug.html
使用 sitefn
templating function 获取域并将其与 cmsfn.link
组合。例如:
[#assign site = sitefn.site(content)]
[#assign relativeURL = cmsfn.link(content)?remove_beginning("/" + site.name)]
[#assign domain = site.domains[0].name]
https://${domain + relativeURL}
理想情况下,您可以调用 LinkUtil.createExternalLink(content)
,不幸的是,此方法未直接暴露给模板(为什么????)。
您正在使用的替代方法是
[#assign domain = (state.originalBrowserURL?keep_before('?')?remove_ending(state.originalBrowserURI))!'']
通过站点读取域的不同之处在于,它为您提供用户当前在浏览器中使用的域,因此即使您将站点域配置为指向 public 实例,它也可以在作者实例上正常工作或者当您临时 运行 在您的本地主机上进行配置时等等。
在 Rendering Context Objects — Magnolia 6.2 中查看 state
的魔法。
[#-- Get / assign your path --]
[#assign path = state.originalURI]
[#-- Put it all together --]
[#assign absoluteUrl = 'https://example.com' + path]
[#-- Render it --]
${absoluteUrl}
如果您不喜欢对协议或域进行“硬编码”,请尝试从站点定义或 Magnolia Config 中获取它们。虽然,如何设置和检索这些属性各不相同。祝你好运。