移动设备上的 PDF 文档显示“没有启用的插件支持此 MIME 类型”消息

问题描述 投票:0回答:4

最近,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,并在移动上下文中下载它。可以吗?

asp.net-mvc pdf web-config mime google-search-console
4个回答
15
投票

对我来说,问题是在响应模式下查看页面,Chrome 不支持在此模式下显示 pdf,切换到常规桌面模式后,PDF 就出现了。文件加载后,可以通过切换回响应模式来测试移动视图。


2
投票

观察到的行为是特定于设备/媒体类型的;温和地说,在 Web 服务器级别处理此问题具有挑战性。有一些简单的方法,但它们只能帮助您到目前为止,一些商业IIS检测解决方案可以提供帮助。

我想,对网站进行调整可能会更有利。可能存在标题问题,或者承认这种行为并管理期望。

跨移动设备保持一致的行为很困难,并且根本没有万无一失的方法来确定设备、移动操作系统或外形规格是否能够像在桌面上一样打开嵌入 HTML 的 PDF 文档。在所有常见浏览器和设备上显示嵌入文档的最低共同点通常是具有下载链接。


0
投票

您可以使用属性navigator.pdfViewerEnabled,当它为true时,您可以在视图中显示pdf,否则您可以创建一个html元素并下载文件。


-1
投票

对于本地主机上的相对 PDF 链接,我有相同的错误消息,但当部署到实时 https url 时,相同的 url 按预期工作

© www.soinside.com 2019 - 2024. All rights reserved.