最近,google 搜索控制台报告了我们的 ASP.NET 网站上存在指向 PDF 文档的 URL 的覆盖问题。
到目前为止,在我们的 web.config 文件中,我们没有任何针对 PDF 文档的 MIME 设置。但事实上,无论是在本地主机还是在生产环境中,在 Chrome 中,在移动环境中 PDF url 都会生成带有消息
no enabled plugin supports this MIME type
: 的空内容
在桌面环境中,PDF 文档直接在 Chrome 中打开。
使用该文件(如下)更新 web.config 文件会在移动和桌面环境中导致相同的描述行为。
<system.webServer>
<staticContent>
<remove fileExtension=".pdf" />
<mimeMap fileExtension=".pdf" mimeType="application/pdf" />
</staticContent>
<system.webServer>
使用该文件(如下)更新 web.config 文件会强制浏览器在两种情况下下载 PDF。
<system.webServer>
<staticContent>
<remove fileExtension=".pdf" />
<mimeMap fileExtension=".pdf" mimeType="application/octet-stream" />
</staticContent>
<system.webServer>
到目前为止,这是最好的解决方案,因为它允许移动用户获取 PDF,这将修复谷歌警告。
但是,我想在桌面上下文中的浏览器本身中打开 PDF,并在移动上下文中下载它。可以吗?
对我来说,问题是在响应模式下查看页面,Chrome 不支持在此模式下显示 pdf,切换到常规桌面模式后,PDF 就出现了。文件加载后,可以通过切换回响应模式来测试移动视图。
您可以使用属性navigator.pdfViewerEnabled,当它为true时,您可以在视图中显示pdf,否则您可以创建一个html元素并下载文件。
对于本地主机上的相对 PDF 链接,我有相同的错误消息,但当部署到实时 https url 时,相同的 url 按预期工作