我正在生成Tridion二进制链接,如下所示:
输出作为输出类型REL的动态组件模板发布。发布目标指定ASP.NET。
我在代理数据库的COMPONENT_PRESENTATIONS表中看到的内容输出如下:
<tcdl:Link type="binary" origin="tcm:0-0-0"
destination="tcm:34-669" templateURI="tcm:0-0-0"
linkAttributes="" textOnFail="true" addAnchor=""
variantId="">Document2</tcdl:Link>
所以你至少可以看到文字“Document2”
如果我手工制作二进制链接控件<tridion:BinaryLink..../>
,这可以正常工作,但上面列出的TCDL没有可见的输出。
可能出现什么问题?我接下来应该调查什么?
答案 0 :(得分:7)
我们注意到Link Resolver TBB没有为二进制类型生成正确案例的相同行为。它生成为<tcdl:Link type="binary" ../>
而不是<tcdl:Link type="Binary" ../>
(注意小写 b 而不是大写 B ,难以捕捉)。 REL TCDLTagRender区分大小写,并且不解析tcdl:link的小写类型:binary并且您将在cd日志文件中看到警告消息(假设您将日志级别设置为警告或调试)。
"WARN LinkTagRenderer - Link type does not exist."
解决方法是通过引入新的TBB将小写binary
的输出替换为大写Binary
。我们将此作为TBB的一部分包括在内,以解决RTF字段二进制链接解析任何多媒体链接,如pdf,doc等。
你在TBB中用二进制替换小写二进制文件,如下所示。
string output = package.GetValue(Package.OutputName);
output = output.Replace("type=\"binary\"", "type=\"Binary\"" );