9

我们有一个与策划内容相关的 Tridion 用例,我们正在为与我们的内容相关联的图像创建多媒体组件,这些图像指向外部资源类型而不是上传的资源类型。

我们在这个用例中遇到的一个问题是,尽管为资源显式设置了多媒体类型,但如果图像的 URL 中包含查询字符串:http ://cdn.hw.net/UploadService/ 1c8b7f28-bb12-4e02-b888-388fdff5836e.jpg?w=160&h=120&mode=crop&404=default或使用“友好的 url”: http: //www.somewhere.com/images/myimage/当我们保存组件时,Tridion barfs 错误消息类似于:“属性“文件名”的值无效。意外的文件扩展名:jpg?w=160&h=120&mode=crop&404=default。期待:jpg,jpeg,jpe。

到目前为止,我们能够想出解决这个问题的唯一方法是做一些hacky,比如在以预期文件扩展名结尾的url的最后附加一个额外的查询字符串参数:http:/ /cdn.hw.net/UploadService/1c8b7f28-bb12-4e02-b888-388fdff5836e.jpg?w=160&h=120&mode=crop&404=default&ext=.jpg 显然,这不是最好的解决方案,实际上可能不适用于某些图像如果提供服务的站点严格验证请求的 URL。

有人对我们如何解决这个问题有任何想法吗?

4

2 回答 2

9

不幸的是,我真的想不出一个简单的解决方案,因为 Tridion 通过检查文件扩展名“检测”了 Mime 类型。

您也许可以在保存时添加它并在阅读时删除它(通过事件系统)?绝对是一个值得的增强请求,据我所知,这种行为在即将到来的 Tridion 2013 中没有改变......请参阅下面的评论,它已在 2013 年改变。

于 2013-02-19T19:35:11.563 回答
8

努诺的回答+1。认识到您的问题标题特定于多媒体组件,您可能需要考虑另一种方法,即使用普通组件,而不是多媒体组件。您可以创建一个名为“外部图像”之类的普通组件架构,它有一个外部 URL 字段来存储您的无扩展 URL。

然后,内容作者将通过 Tridion GUI 中的常规组件链接机制包含这些图像。

然后,您将需要一个自定义链接解析器 TBB,它将解析输出项(通过正则表达式)以查找任何 Tridion 锚标记<a tridion:href="tcm:x-y-z">,并将每个标记替换<img src=...>为 src 路径来自此链接组件的标记。

有关类似方法的示例,但带有视频和自定义链接解析器 TBB 的示例代码,请查看以下帖子中的代码:http ://www.tridiondeveloper.com/integration-sdl-tridion-jw-媒体播放器

于 2013-02-19T19:58:29.380 回答