【问题标题】:Sitecore media src path wrong?Sitecore 媒体 src 路径错误?
【发布时间】:2013-11-04 06:38:36
【问题描述】:

我刚刚将 Sitecore 6.5 解决方案升级到 Sitecore 7。这是一个非常基本的站点,所以没有大问题。 不过我遇到了一个问题。

我想在 xslt 中获取图像项的 src 的几个地方。我就是这样做的;

sc:fld('myImage',.,'src')

这个输出是~/media/folder/myimage.ashx

但由于某些原因,这不起作用 - 这意味着没有显示图像。当我复制 src 并尝试直接在新选项卡中打开我时,我会被重定向到 Sitecore 登录。并且图像上没有任何安全设置。

然后我发现,例如,当使用 sc:image 时,我得到了另一个 src,它可以工作: /sitecore/shell/~/media/folder/myimage.ashx 但我觉得上面的内容不对?

发生了什么,我该如何解决?除了站点定义和数据文件夹路径之外,我在 web.config 中没有更改任何内容。否则完全有货。

【问题讨论】:

  • 尝试使用桌面上的访问查看器查看匿名对这些媒体项目的权限。似乎在链上的某个地方它没有通过安全检查,Access Viewer 会解释为什么访问被拒绝。
  • @KamFigy 刚刚仔细检查了安全性,一切正常。对媒体项没有设置限制,所以这不是问题。在我看来,问题是图像的路径,这似乎非常错误。至少与 sitecore/shell 一起工作的,不应该像我猜的那样?
  • 当你得到/sitecore/shell路径时,你是在预览模式下查看的吗?

标签: sitecore sitecore7


【解决方案1】:

在 sc:fld 的输出前加上斜杠 '/',这样完整路径就变成了

/~/media/folder/myimage.ashx

【讨论】:

    【解决方案2】:

    现在您可以使用sc:field 代替sc:fld,您将获得友好的网址

    【讨论】:

      【解决方案3】:

      这常常让人们感到困惑,所以让我们了解一下 Sitecore 生成和处理媒体请求的方式。这将使您了解它在 sc:field() 的“引擎盖下”是如何工作的。

      首先,检查您的配置。 MediaLinkPrefix 指定您的媒体前缀将在 HTML 呈现时使用。

      <setting name="Media.MediaLinkPrefix" value="~/media/" />
      

      第二步,一旦 HTML 形成并且链接在 href 属性中包含您想要的媒体前缀,您的下一步将是设置一个处理程序来处理这些链接。可以在 customHandlers 节点中的以下配置设置中完成:

      <handler trigger="~/media/" handler="sitecore_media.ashx" />
      

      最后,您需要将处理程序与将服务您的请求的确切代码相关联。 Than在httpHandlers节点中配置,如下:

      <add verb="*" path="sitecore_media.ashx" type="Namespace.ClassName, YourLibrary" />
      

      如果您的 MediaPrefix 正在生成相对链接,请确保生成的路径相对于您网站的根目录是正确的。以 '/' 开头的相对路径将确保这一点。

      希望这很好地解释了该机制,但是请随时就它在 Sitecore 中的工作原理提出更多问题。

      干杯!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-08
        • 2015-11-10
        • 1970-01-01
        • 2012-01-29
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多