Firefox 尝试使用 gedit 打开 application/octet-stream

Firefox 尝试使用 gedit 打开 application/octet-stream

我在 Fedora 22 上使用 Firefox 41.0.1。

当我尝试打开 GitLab 网站上的 PNG 图像链接时,我注意到了此行为。服务器回复"Content-Disposition:"inline; filename="logo.png"Content-Type:"application/octet-stream"

我希望它要么在浏览器上显示图像,要么让我在系统默认图像查看器上打开它。我知道这是可能的,至少在 Windows 中是可能的。请参阅下面由 @JourneymanGeek 提供的 GIF:

在此处输入图片描述

我做了一些测试此工具并且,显然,当我单击一个链接并且响应头包含application/octet-streammime 类型时,Firefox 建议我使用 gedit 打开该文件,并说明它是默认应用程序。

在此处输入图片描述

  • 如果我下载该文件(在本例中为 PNG 图像)并双击它,它会在 Eye of Gnome 上打开。
  • xdg-open也可以在 Eye of Gnome 中打开它。
  • application/octet-stream不存在/usr/share/applications/defaults.list
  • $ grep "gedit" /usr/share/applications/defaults.list仅返回text/plain=org.gnome.gedit.desktop
  • 我已删除该~/.mozilla/firefox/<profile>/mimeTypes.rdf文件,但问题仍然存在。
  • 我也删除了该~/.local/share/applications/mimeapps.list文件,但问题仍然存在。
  • 我已经重新启动了 Firefox,并且退出了我的 Gnome 配置文件。

这是 Firefox 文件关联屏幕:

在此处输入图片描述

因此,我的问题是:是否可以使用 Firefox在浏览器上显示文件(如果它是可以渲染的文件),或者提供正确的应用能够渲染它吗(如果系统上有的话)?

还是服务器声明了错误的 mime 类型导致这一切变得不可能?

还,为什么它认为gedit是默认octet-stream处理程序? 它是否正确?

答案1

我也删除了该~/.local/share/applications/mimeapps.list文件,但问题仍然存在。

mimeapps.list系统其他地方可能还有另一个。您可以浏览列表这里或者使用以下命令之一搜索您的系统:

locate mimeapps.list

或者

find / -name 'mimeapps.list'

检查application/octet-stream其中的任何条目,并将其注释掉或删除。

答案2

嗯,看来 Firefox 不会修复这个问题问题但我以自己的方式修复了它,application/octet-stream=org.gnome.gedit.desktop从我的中删除~/.config/mimeapps.list并使用了附加组件开放下载²为我提供Run选择。

如果下载文件的扩展名在中正确配置mimeapps.list,则 Firefox 将打开(跑步)它就像一个魔咒。

答案3

@Bob 回答了问题的第二部分:如何控制哪个应用程序打开文件。

第 1 部分的答案是:Firefox 下载所有类型为 application/octet-stream 的文件通过设计. 根据 HTTP 标准,如果指定了内容类型,兼容的浏览器不得猜测服务器。由于八位字节流文件包含任意数据,因此浏览器应该下载它们。

大多数浏览器为了方便用户而忽略了标准。Firefox 则不然。正如 @Geyslan 的回答所述,您需要使用第三方扩展来规避这种设计选择。

相关内容