2

與該問題相關 Getting Sitecore 404 for physical files 我專門負責刪除介質文件夾中的代字號前綴(在問題的答案中也提到過)。 如上面的相關問題,我在打開媒體庫後得到了404。所以我在web.config中的IgnoreUrlPrefix設置中添加了/ sitecore/shell/Applications/Media/MediaShop AND/sitecore/shell/Applications/Media/Media Folder.aspx 這解決了這個問題,但我不確定這是怎麼回事解決了問題,以及爲什麼刪除媒體文件夾中的波浪號會在媒體庫頁面上導致404。 有人可以解釋一下嗎?打開Sitecore媒體庫時獲取404

+0

這就是Sitecore描述的方式https://kb.sitecore.net/articles/723979 –

+0

您是在編輯器中的後端CMS上還是在前端CD站點上看到錯誤? – jammykam

回答

3

如果您有現成的內容,而這些內容是在波浪前綴就位的情況下創建的,那麼Rich Text字段中的現有內容仍具有正在使用的波浪前綴。您可以通過查看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/newsmysite.com/news/latest/media/。您可能想要添加一些驗證以防止創建這些項目。

+1

你的答案的最後部分是有道理的。我意識到mediashop文件夾位於媒體文件夾內,因此它將作爲媒體項目而不是內容進行處理。 –