打开Sitecore媒体库时获取404

时间:2016-05-17 01:13:58

标签: sitecore http-status-code-404 sitecore6 sitecore-media-library

与问题相关 Getting Sitecore 404 for physical files 我的具体任务是删除媒体文件夹上的波浪号前缀(也在问题的答案中提到)。 我之后打开媒体库就像上面的相关问题一样得到404。所以我将/ sitecore / shell / Applications / Media / MediaShop和/ sitecore / shell / Applications / Media / Media Folder.aspx添加到web.config中的IgnoreUrlPrefix设置 这解决了这个问题,但我不确定这是如何解决问题的,以及为什么删除媒体文件夹上的波浪号会导致媒体库页面上的404。 有人可以解释一下吗?

1 个答案:

答案 0 :(得分:3)

如果您具有在使用波浪号前缀时创建的现有内容,则特别是富文本字段中的现有内容仍然使用波浪号前缀。您可以通过查看字段的Edit HTMLRaw Values来查看此内容,其格式为:

<img src="-/media/123A4B6789012CAB34C567AB79CBD084.ashx?h=100%25&w=100%25" style="height: 100%; width:100%;">

为了更改代字号并仍然支持旧内容,您需要补充媒体配置更改,修改以下部分的更改:

<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>

    <settings>
      <!-- Extensions of media files should match it's type -->
      <setting name="Media.RequestExtension">
        <patch:attribute name="value"></patch:attribute>
      </setting>

      <!-- Change the media prefix from the default -->
      <setting name="Media.MediaLinkPrefix">
        <patch:attribute name="value">-/media</patch:attribute>
      </setting>
    </settings>

    <!-- Media handler prefixes -->
    <customHandlers>
      <handler patch:before="*[@trigger='~/media/']" trigger="-/media/" handler="sitecore_media.ashx" />
    </customHandlers>

    <!-- Support Media Prefixes -->
    <mediaLibrary>
      <mediaPrefixes>
        <prefix value="-/media"/>
        <prefix value="~/media"/>
      </mediaPrefixes>
    </mediaLibrary>

  </sitecore>
</configuration>

更改前缀以匹配您需要的任何内容。

无论如何,链接将在前端站点上正确呈现。请注意,您使用了/media,哪个媒体如果创建了一条名为media*的内容,则媒体处理程序将尝试处理它,即使它是内容,例如mysite.com/media/newsmysite.com/news/latest/media/。您可能需要添加一些验证以防止创建此类项目。