【问题标题】:Sitecore - 2 Media items. Same filename, different extensionsSitecore - 2 个媒体项目。相同的文件名,不同的扩展名
【发布时间】:2014-01-11 00:28:47
【问题描述】:

如果您有 2 个名称相同但扩展名不同的媒体项,Sitecore 无法区分它们。

例如:

  • /~/media/myfile.pdf

  • /~/media/myfile.doc

当请求这些 URL 时,在这两种情况下都会返回 PDF 文件。

我知道 Sitecore 忽略了请求中的扩展名,而真正的问题实际上是我在媒体库中有两个具有相同路径的项目:

站点核心/媒体库/我的文件

但是,我认为我们的客户希望将同一文档的 PDF 和 DOC 版本存储在单个节点中是合理的。

我发现这篇文章解决了确保请求的媒体项目文件扩展名有效的相关问题:

http://www.cognifide.com/blogs/sitecore/sitecore-serves-media-items-even-with-incorrect-extensions/

但是,这仍然基于您首先获得了正确的 Sitecore 项目的前提(在请求 myfile.doc 的情况下并非如此)。

所以我想我的问题是,是否有办法阻止 Sitecore 简单地获取它找到的第一个项目并考虑扩展。

【问题讨论】:

    标签: sitecore sitecore-media-library


    【解决方案1】:

    您可以覆盖 web.config 中的媒体提供程序或项目解析器,并且如果请求的资源是媒体项目:

    1. 查看是否有同名兄弟
    2. 如果是,请检查请求的扩展名(doc、PDF 等)
    3. 根据扩展找到属于该类型的兄弟并返回。

    【讨论】:

    • 谢谢。也在沿着这些思路思考。值得一试。我担心的是,对每个媒体请求执行以下操作可能会产生相当大的开销:1. 获取父项,2. 遍历其所有子项以查找具有匹配名称的项,3. 检查扩展是否匹配。
    • 虽然我想一个简单的折衷办法是将此过程限制在媒体库的一个分支中,并确保所有文档都进入该分支
    • 我同意,它可能很昂贵,但你对特定文件夹提出了一个很好的观点。
    • 我写了一篇博文,详细介绍了我确定的解决方案。它几乎就像我们讨论的那样有效。 sitecoreskills.blogspot.co.uk/2014/01/…
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多