与问题相关 Getting Sitecore 404 for physical files 我的具体任务是删除媒体文件夹上的波浪号前缀(也在问题的答案中提到)。 我之后打开媒体库就像上面的相关问题一样得到404。所以我将/ sitecore / shell / Applications / Media / MediaShop和/ sitecore / shell / Applications / Media / Media Folder.aspx添加到web.config中的IgnoreUrlPrefix设置 这解决了这个问题,但我不确定这是如何解决问题的,以及为什么删除媒体文件夹上的波浪号会导致媒体库页面上的404。 有人可以解释一下吗?
答案 0 :(得分:3)
如果您具有在使用波浪号前缀时创建的现有内容,则特别是富文本字段中的现有内容仍然使用波浪号前缀。您可以通过查看字段的Edit HTML
或Raw 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/news
或mysite.com/news/latest/media/
。您可能需要添加一些验证以防止创建此类项目。