处理链接到数百个二进制文件的页面的更好方法是什么?

时间:2012-02-20 21:32:38

标签: tridion

我为以下设置提供了更好的解决方案。我并没有积极地研究这个问题,但是知道一些人可能会欣赏其他处理方法。

设定:

  • Tridion管理的页面有一个“链接列表”组件链接列表
  • 单个组件具有指向Tridion
  • 中其他组件的组件链接
  • 链接组件通常链接到多媒体组件(mm)
  • XSLT组件模板(XSLT CT)使用上述内容和指向PDF的链接呈现XML
    • XSL document()函数用于抓取嵌入(链接到)内容,所有内容转换为XML节点和属性
    • 带有publishBinary()的TCMScriptAssistant命名空间发布相关的PDF和其他媒体
  • 页面模板只输出CT的结果

业务要求:

  1. 改进了发布(最后我为此工作过,其中一些文件由于PDF而创建了2GB发布事务)
  2. 发布的XML内容文件必须引用相关的PDF;超链接工作,但标识符可能没有帮助,因为......
  3. 没有Tridion内容交付API,主要是为了独立于存储数据库,还要避免在演示服务器上使用特定于Tridion的代码(松散耦合的设置和较少的开发人员培训)
  4. 最大的问题是出版期间庞大的运输包装。第二个问题是发布任何链接到的PDF将导致页面重新发布。

    如何改进或重新设计此设置,最好不要对现有模板进行太多更改,但可以考虑使用模块化模板。

    动态组件演示可能有效,但需要发布到文件系统,而不是使用动态链接或代理对象(例如,没有条件过滤器,二进制元数据等)。

1 个答案:

答案 0 :(得分:4)

确实有两个问题。我会以相反的顺序处理它们。

要防止在发布二进制文件时重新发布页面,可以使用旧版Tridion中的事件系统(2011年之前)关闭链接解析,或者使用较新版本可以使用自定义解析程序来防止这个。 Nuno有一篇文章解释了这个问题(http://nunolinhares.blogspot.com/2011/10/tridion-publisher-and-custom-resolvers.html)

您的第二个更难一点,这在很大程度上是因为您不使用SDL Tridion CD API的标准。我建议单独发布二进制文件(这会使文件大小保持在事务包之下),并使用二进制链接在请求时解析路径。

鉴于这不是一个选项,我认为唯一的是我会接近它仍将使用动态组件演示,然后为PDfs使用可预测的唯一文件名(即使用基于317-12345.pdf的东西) URI),并为所有二进制文件使用一个目录。这样您就可以使用XSLT模板输入二进制文件的路径,因为您知道稍后二进制文件的位置。然后,您可以在发布主列表组件或页面时使用自定义解析程序发布二进制文件。

希望有所帮助

克里斯