【问题标题】:How can I edit Chrome MIME type mappings?如何编辑 Chrome MIME 类型映射?
【发布时间】:2012-01-09 13:42:12
【问题描述】:

我在新标签中打开了一个 image/x-png 类型的图像,但 Chrome 刚刚下载了它。 我用谷歌搜索了它,发现 Chrome 不会将 image/x-png 解释为图像文件。

所以,我想编辑我的 Chrome 的 MIME 类型映射。有可能吗?

【问题讨论】:

  • 我有一个想法,但需要测试数据。请在您的问题中添加一些带有虚假响应标头 (image/x-png) 的 URL。
  • 对我来说这些图片是普通图片/png,所以我使用本地网络服务器进行了测试(故意配置错误)。

标签: google-chrome png mime-types


【解决方案1】:

很遗憾你没有回答我的评论,所以我忘记了你的问题并失去了赏金。我想我的答案对您来说更容易使用,因为您无需单击任何上下文菜单即可直接在浏览器中查看 PNG:

Chrome 扩展 Redirector 可以配置为替换 HTTP 响应标头。我为任何以“.png”结尾的 URL 创建了一个替换 Content-Type 标头的规则:

将此 JSON 代码粘贴到文本编辑器中,另存为 png_rule.json,然后在重定向器设置中转到 规则管理器,单击 文件打开 im-/export 选项并导入规则 version 1:

[{"name":"x-png -> png","match":{"str":"\\.png$","type":0,"modi":false},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

从现在开始,您的所有 PNG 文件都应该没问题。

更新:按照作者或重定向者的建议,将简单的模式匹配替换为更严格的正则表达式匹配。


更新 2:Trac 这样的系统会生成以“.png”结尾的 PNG 附件的 URL,但实际上是 HTML 页面,仅将 PNG 作为页面的一部分嵌入。在这种情况下,我们需要将主机列入黑名单,否则 HTML 页面的内容类型将设置为 image/png,即使它应该保留为 text/html。由于 Redirector 的限制,标头只能被匹配的 URL 和部分替换覆盖,例如只有 png 而不是 x-png,是不可能的,我们需要使用一种相当丑陋的方法,在正则表达式匹配中显式排除某些主机。例如

^https?://(?!([^/]+\.)?(?:trac\.edgewall\.org|freetz\.org)/).*\.png$

将排除包含主机名 trac.edgewall.orgfreetz.org 的 URL。要导入 Redirector 的完整 JSON 是规则 版本 2:

[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+\\.)?(?:trac\\.edgewall\\.org|freetz\\.org)/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

两个测试 URL 失败(即显示空的“图像”而不是 HTML 页面)在以前版本的规则中没有列入黑名单,而现在在新规则(包括黑名单)下运行是:

如果您了解一点正则表达式或只是玩玩,添加其他 URL 很容易。

顺便说一句:对于 Trac URL,一个不错的选择是使用通用部分“/attachment/ticket/”来列入黑名单。这样,您可以将全球所有 Trac 安装列入黑名单,而不是固定主机列表。所以这是规则版本 3:

[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+)?/attachment/ticket/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

更新 3:Chrome 商店中不再提供重定向器,但可以从旧的 Redirector home page 下载历史版本。

【讨论】:

  • 上面指向“重定向器”的链接似乎已损坏。你能推荐另一个吗?
  • 用户@Mardok 回答了在哪里可以找到(旧版本的)重定向器的问题。我再说一遍:code.google.com/p/chrome-redirector/downloads/list
  • 由于重定向器不再存在,stackoverflow.com/a/66595574/816213 可能会有所帮助
  • @sachinjain024,首先,对于我的示例 URL,该扩展程序没有按预期工作。始终会下载相应的 PNG 图像。其次,你显然是扩展作者,。所以你应该能够告诉我为什么扩展程序想要拥有在所有网站上查看我的所有数据的完全访问权限,以及为什么我必须将我的规则在线保存在你的网站上而不是本地。 IMO 那个扩展只是一个大数据收集器,我肯定不会使用它,因为我必须用我所有的私人冲浪数据付费。
  • @kriegaex 您能否在此处提供有关该网站和 png URL 的更多详细信息 - github.com/requestly/customer-support/issues,我很乐意对此进行调查。由于该应用程序按照用户定义的规则运行,因此我们无法限制该应用程序在特定域上使用。我们不会像您想的那样收集数据,事实上我们将所有规则存储在本地存储中。这是隐私政策 - requestly.io/privacy
【解决方案2】:

您似乎无法编辑您的 MIME 类型映射,请参阅 "View As MIME Type" in Chrome or Firefox

这个答案https://stackoverflow.com/a/8724758/962091 特别有趣。作者制作并开源了一个 Chrome 扩展程序,可以通过右键单击添加的菜单项将文件作为不同的 MIME 类型打开,尽管它不提供全局处理机制。

编辑:

默认情况下扩展只有text/htmltext/plain的选项,但你可以在扩展设置中添加任何你喜欢的扩展,包括image/png。这是test image

This bug was moved to Untriaged on August 13, 2012 in the Chromium bug tracker,所以希望 Chrome 也能尽快解决这个问题。

【讨论】:

    【解决方案3】:

    有一个 Chrome 扩展可以改变任何模式的内容类型和配置,所以它可以用来强制 png 显示而不是下载(但它适用于许多其他情况,我用它来将 txt 渲染为 HTML):Modify Content-Type Chrome Extension

    【讨论】:

      【解决方案4】:

      出于某种原因,他们已从 chrome 网上商店中删除了重定向器。你可以找到任何版本的重定向器here

      这是 .jpg .gif 和 .png 格式的 json:

      [{"name":"x-png -> png","match":{"str":"\.png$","type":0,"modi":false},"sub" :{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode": false},"启用":1},{"name":"x-jpg -> jpg","match":{"str":"\.jpg$","type":0,"modi": false},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/jpg ","decode":false},"enabled":1},{"name":"x-gif -> gif","match":{"str":"\.gif$","type": 0,"modi":false},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str ":"image/gif","decode":false},"enabled":1}]

      【讨论】:

        【解决方案5】:

        显然,Chrome 没有自己的 mime 处理数据库,而是使用桌面环境的数据库。

        例如,在我的基于 XFCE4 的环境中,设置是通过xfce4-settings 应用程序(特别是xfce4-mime-settings)控制的。

        在 Windows 桌面上,您将通过“控制面板”的“默认程序”部分,如(痛苦的)详细信息 here 中所述。

        【讨论】:

        猜你喜欢
        • 2011-04-25
        • 2017-07-04
        • 1970-01-01
        • 2014-01-25
        • 2017-10-17
        • 1970-01-01
        • 2013-05-25
        • 1970-01-01
        • 2021-10-10
        相关资源
        最近更新 更多