微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在内容资产中创建会话重定向链接

如何解决在内容资产中创建会话重定向链接

我们公司有多个品牌,每个品牌都有自己的主机名,但它们都是同一个网站的一部分。当客户通过使用 URLUtils.sessionRedirect重定向链接在品牌之间切换时,我们可以让他们共享购物篮和其他会话信息。

但是 URLUtils内容资产中不可用。是否可以在保留所有会话信息的内容资产中形成会话重定向链接

提前致谢。

解决方法

您可以使用 $include('Controller-Name','name1','value1','name2','value2',...)$ 语法在内容资产中包含动态内容。有关该语法的更多信息,请参阅 MarkupText Class Documentation。 'name1' 和 'value1' 参数被映射为查询字符串属性,例如:Controller-Name?name1=value1&name2=value2

创建一个输出您需要的会话重定向链接的控制器,并通过如下语法调用它:$include(Util-RenderSessionLink,'siteID','foo')$

控制器需要使用 text/plain 或类似内容的响应 Content-Type 标头,以便不将任何内容注入响应中。 (例如:店面工具包或跟踪标签)例如:

response.setContentType('text/plain');

或者,您可以为执行查找和替换操作的某些类型的键处理内容资产。例如,以下代码对键的内容资产的正文内容进行查找和替换:'%%SessionLink%%'。

var ContentMgr = require('dw/content/ContentMgr');
var URLUtils = require('dw/web/URLUtils');

if (!empty(content) {
  var content = ContentMgr.getContent('my-content-id');
  var contentOut = "";
  var viewData = {};
  
  contentOut = content.custom.body.getMarkup()
     .replace('%%SessionLink%%',URLUtils.sessionRedirect(...));
  
  viewData.content = contentOut;
  // then output your `pdict.content` key within a template with the appropriate encoding
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。