Tridion 什么';XSLT CT中addbinary()和publishbinary()之间的区别是什么?

Tridion 什么';XSLT CT中addbinary()和publishbinary()之间的区别是什么?,tridion,Tridion,我已经能够通过引用tcmscriptasistant名称空间(xmlns:tcmse=”在XSLT组件模板(CT)中发布二进制文件http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant)并使用以下各项: <h2>PublishBinary()</h2> <xsl:element name="a"> <xsl:attribute name="href">

我已经能够通过引用tcmscriptasistant名称空间(xmlns:tcmse=”在XSLT组件模板(CT)中发布二进制文件http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant)并使用以下各项:

<h2>PublishBinary()</h2>
    <xsl:element name="a">
        <xsl:attribute name="href">
            <xsl:value-of select="tcmse:PublishBinary(string(./@xlink:href))" />
        </xsl:attribute>
            <xsl:value-of select="./@xlink:title" />
    </xsl:element>
PublishBinary()
我最近尝试了AddBinary:

<h2>AddBinary() with webdav</h2>
    <xsl:element name="a">
        <xsl:attribute name="href">
        <xsl:value-of select="tcmse:AddBinary(string(./@xlink:href), '/webdav/040 CreateandBreak/Root/Media/Image', 'some_variant')" />
        </xsl:attribute>
            <xsl:value-of select="./@xlink:title" />
    </xsl:element>
带有webdav的AddBinary() 以下两种情况的结果标记:

<h2>PublishBinary()</h2>
<a href="/Media/buddy_tcm7-274.jpg">buddy</a>
<h2>AddBinary() with webdav</h2>
<a href="/Media/Image/buddy.jpg">buddy</a>
PublishBinary()
使用webdav添加二进制文件()
我可以看到addBinary使用了第二个参数中提供的不同文件夹(结构组)

我是否为字符串variantID输入了第三个参数错误?我不确定是否应该在.jpg名称中看到它的文本。

PublishBinary和AddBinary之间的任何其他区别,特别是在使用XSLT CTs时?

我在试着理解是否应该用一个来代替另一个

为了澄清,我相信这是TCMSCriptasistant类(不是TOM.NET)下的Tridion对象模型AddBinary。我确信XSLT-CTs仍将受到支持,但我将继续提出另一个问题,即更好地处理二进制文件的方法,可能是在模块化模板中

其他资料: -Tridion2011SP1模式有嵌入到服务器上的多媒体组件的链接 使用XSLT CT进行“静态”组件演示的页面是首选方法。我相信它是用R5.3引入的。它让我们可以选择制作多个版本(变体)的二进制文件,并将它们放在特定的SGs中。在文件名中看不到变体ID的原因是,它在代理中用作元数据,用于检索(或链接到)多媒体组件的特定变体。如果您查看TOM.NET API,您将看到变量前缀(将成为文件名的一部分)之类的附加参数

如果在代码中同时使用这两种技术,实际上可能会遇到问题。我强烈建议您将PublishBinary()视为“仅用于向后兼容”,并使用更新的方法

快乐编码


克里斯

太好了,谢谢。我将在将来的XSLT CT工作和示例中使用addBinary()。我不知道这是哪个API,因为TOM.NET中的其他addBinary()方法不起作用(正如预期的那样,因为它属于tcmscriptasistant)。