重写二进制链接以使用CDN

est*_*why 6 cdn templating tridion tridion-2011

CDN整合似乎是Tridion人群中的热门话题.但是,不知何故,可用的讨论主要围绕推动CDN的内容.我特别感兴趣的是:

修改/添加内联图像出站链接以使用CDN的正确方法是什么?

最简单的方法是创建一些后处理TBB,对Output项进行操作,并将其置于'Default Finish Actions'中.虽然,在CD方面这样做似乎更正确,不是吗?

编辑

考虑更好的情况:如果不仅我想修改图像路径,而是将整个图像链接包装到ASP.Net控件中.我在哪里这样做?

编辑2

到目前为止,通过TBB实现了对ASP.Net控制替换的标记.顺利,只需要关注以下微妙的事情:

  • 考虑CSS内联样式(即:background-image:url(..))
  • 需要任何链接操作逻辑之后放置新的TBB (例如:从Html中提取二进制文件,在包中发布Bnaries,链接解析器)
  • 最快和最强大的实现可能是简单的字符串替换(与regexp或XML解析相反)
  • 为了保持标准的"预览"逻辑不变,需要一些条件来触发逻辑

Fra*_*len 3

如果您决定为 CDN 托管的图像使用 ASP.NET 控件,您可以考虑以下阶段/步骤:

  1. <tcdl:image id="..." path="..."渲染时在 CM 上写入 TCDL 标签(例如)
  2. 编写一个 TCDLTagHandler实现,在部署期间将 TCDL 转换为 ASP.NET include
  3. 编写 ASCX 控件以在访问者请求页面时正确执行 CDN 查找

我不确定步骤 2 和 3 是否都需要。您也可以在部署阶段(上面的步骤 2)简单地编写 CDN 路径。

同时,我希望您使用部署程序扩展将(更新的)图像上传到 CDN,以便它也会在第 2 阶段发生。

  • “1.链接解析无论如何都发生在CM端”PublishBinary/AddBinary确实在发布时计算路径。如果您使用二进制链接,TCDL 会在请求时转换为路径,从而更轻松地处理移动/重命名等操作。 (2认同)