将PDF的Sitecore渲染从.ashx更改为DownloadMedia.aspx的后果?media={GUID}
本文关键字:后果 media aspx GUID DownloadMedia Sitecore PDF ashx | 更新日期: 2023-09-27 17:58:54
在我们的sitecore网站上,我们有两种方法将项目(文章)与相关媒体PDF项目关联起来:
- 一种方法是单击该内容项的内容值字段的RichTextEditor中的"插入Sitecore链接"按钮,这样会产生以下内容:
<a href="~/media/EB5BA6C0CCF4781B668DE863EE996D9.ashx">emad_pdf_test_1<a>
<a href="~/media/1978B759E83348CFB23870AE31494765.ashx">emad_pdf_test_2<a>
- 第二种方法是通过PDF字段(具有"打开文件"、"下载"、"查看文件"answers"清除"选项)选择相关媒体PDF项目。这会产生类似于:
<一href="/DownloadMedia.aspx?media={EB5BA6C0-CCF-4781-B668-DE863EE996D9}">下载PDF<a>
第一种方式(#1)已经导致一些人在IE8&IE9.无论如何,经过一番痛苦的尝试和错误,我们决定将所有像#1(.ashx)一样渲染的地方改为像#2(DownloadMedia.aspx?media={GUID})一样渲染。我们知道,如果我们这样做,所有浏览器中的所有PDF下载都可以工作。
我们意识到,如果我们在sitecore中实际删除相关的PDF媒体项目,如果在RichTextEditor中,该PDF媒体项目在DownloadMedia.aspx中被引用,sitecore将不会警告我们链接断开?media={GUID}格式。有什么办法解决这个问题吗?
此外,将PDF的呈现方式从".ashx"更改为"DownloadMedia.aspx"是否会对我们产生其他影响?
当通过标准Sitecore链接(和媒体处理程序)进行链接时,您可以更新默认的web.config以强制下载PDF文件。这意味着您在使用#1 时不需要更改任何链接方式
<mediaTypes>
<mediaType name="PDF file" extensions="pdf">
<mimeType>application/pdf</mimeType>
<forceDownload>true</forceDownload> <!-- this value has changed -->
<sharedTemplate>system/media/unversioned/pdf</sharedTemplate>
<versionedTemplate>system/media/versioned/pdf</versionedTemplate>
</mediaType>
<mediaTypes>
某些版本的IE中的PDF问题是已知的问题,Sitecore 7.2现在默认情况下将forceDownload
更改为true
。
媒体请求
一些浏览器在下载和打开PDF时出现问题具有默认Sitecore配置的文件。此问题已由修复将web.config文件中元素的元素更改为true。(368967)
Sitecore CMS 7.2 的发布历史
编辑:
这个问题似乎与分块传输编码和IE9/Acrobat Reader插件不能很好地配合有关。你可以在这里阅读更多信息,但修复方法是在config:中禁用媒体项目的分块传输编码
<setting name="Media.EnableRangeRetrievalRequest" value="false"/>
最初的答案仍然是OP问题的最佳选择,即如何强制浏览器下载PDF文件,但这解决了他为什么在IE8/9浏览器上出现问题的具体问题。
您可以扩展媒体处理程序来继续使用sitecore链接并强制下载。
http://sitecoreblog.lexshyba.com/2010/07/file-download-dialog-box-for-sitecore.html?m=1