我在使用 Razor 模板从 Tridion 发布二进制文件(PDF 文件)时遇到问题。
我有一个组件模板,它设置为“发布为动态组件”,带有一个链接的多媒体模式。
我正在使用Razor Mediator eXtension,组件模板包含两个模板构建块:
- 一个 Razor 模板,输出一些 HTML 和多媒体组件中二进制文件的链接。
- 默认完成操作 TBB 包含以下内容:
- 在包中发布二进制文件
- 链接解析器
- 目标群体个性化
- 清理模板
- 将 Xml 转换为 Html
Razor 模板包含以下代码(我已经稍微简化了):
这似乎可以正确解析二进制链接并生成以下动态组件表示:
我遇到的问题是二进制文件本身从未添加到包中,因此不会被发布。
由于 Razor 调解器在 Tridion.ContentManager.config 文件中有一个“extractBinaries”设置,因此我怀疑二进制文件应该由调解器添加到包中。我已确保将 extractBinaries 设置设置为“true”,但是二进制文件并未添加到包中(尽管正在处理的多媒体组件作为 tridion/组件项在包上)。
有谁知道此功能是否可用并在 Razor Mediator 中工作?我怀疑 Razor Mediator 期望链接代码采用特定格式,但我在文档中找不到任何内容。
我还尝试将“从 Html 中提取二进制文件”TBB 添加到组件模板(遵循 Razor 模板),但出现以下错误: “项目输出必须具有指定的属性 TCMURI”。我怀疑这是由于 Razor Mediator 将“输出”项目添加到包中的方式。
我可以编写一个新的 TBB 以确保将二进制文件添加到包中,但如果 Razor Mediator 已经提供了该功能,我宁愿避免这样做。
提前致谢。
PS 为图片道歉。Stackoverflow 不想正确格式化代码。