在内容资产中创建会话重定向 link
Create session redirect link in content asset
我们公司有多个品牌,每个品牌都有自己的主机名,但它们都是同一个网站的一部分。我们可以让客户在使用 URLUtils.sessionRedirect
.
通过重定向 link 在品牌之间切换时共享购物篮和其他会话信息
但是 URLUtils
在内容资产中不可用。是否可以在保留所有会话信息的内容资产中形成会话重定向 link?
提前致谢。
您可以使用 $include('Controller-Name', 'name1', 'value1', 'name2', 'value2', ...)$
语法在内容资产中包含动态内容。有关该语法的更多信息,请参阅 MarkupText Class Documentation。 'name1' 和 'value1' 参数映射为查询字符串属性,例如:Controller-Name?name1=value1&name2=value2
创建一个输出你需要的 session 重定向 link 的控制器,并通过如下语法调用它:$include(Util-RenderSessionLink, 'siteID', 'foo')$
控制器需要使用 text/plain
的响应 Content-Type header 或类似的东西,这样就不会向响应中注入任何内容。 (例如:店面工具包或跟踪标签)例如:
response.setContentType('text/plain');
或者,您可以针对执行查找和替换操作的某些类型的键来处理内容资产。例如,以下代码对内容资产的 body 内容执行查找和替换键:'%%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
}
我们公司有多个品牌,每个品牌都有自己的主机名,但它们都是同一个网站的一部分。我们可以让客户在使用 URLUtils.sessionRedirect
.
但是 URLUtils
在内容资产中不可用。是否可以在保留所有会话信息的内容资产中形成会话重定向 link?
提前致谢。
您可以使用 $include('Controller-Name', 'name1', 'value1', 'name2', 'value2', ...)$
语法在内容资产中包含动态内容。有关该语法的更多信息,请参阅 MarkupText Class Documentation。 'name1' 和 'value1' 参数映射为查询字符串属性,例如:Controller-Name?name1=value1&name2=value2
创建一个输出你需要的 session 重定向 link 的控制器,并通过如下语法调用它:$include(Util-RenderSessionLink, 'siteID', 'foo')$
控制器需要使用 text/plain
的响应 Content-Type header 或类似的东西,这样就不会向响应中注入任何内容。 (例如:店面工具包或跟踪标签)例如:
response.setContentType('text/plain');
或者,您可以针对执行查找和替换操作的某些类型的键来处理内容资产。例如,以下代码对内容资产的 body 内容执行查找和替换键:'%%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
}