我在新标签页打开了一张image/x-png类型的图片,但是Chrome却只是下载它。
我通过谷歌搜索发现Chrome不将image/x-png解释为图片文件。
那么,我想编辑Chrome的MIME类型映射。这是否可行?
我在新标签页打开了一张image/x-png类型的图片,但是Chrome却只是下载它。
我通过谷歌搜索发现Chrome不将image/x-png解释为图片文件。
那么,我想编辑Chrome的MIME类型映射。这是否可行?
很遗憾您没有回答我的评论,所以我忘记了您的问题并失去了悬赏。我想我的答案甚至更容易使用,因为您不需要点击任何上下文菜单就可以直接在浏览器中查看PNG图片:
Chrome扩展程序Redirector可以配置替换HTTP响应头。我创建了一个规则,用于替换任何以“.png”结尾的URL的Content-Type标头:
将此JSON代码粘贴到文本编辑器中,另存为png_rule.json,然后在Redirector设置中转到规则管理器,单击文件以打开导入/导出选项,并导入版本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的一部分,例如只替换x-png为png,这是不可能的,因此我们需要采用一种相当丑陋的方法来显式地排除某些主机。例如:
^https?://(?!([^/]+\.)?(?:trac\.edgewall\.org|freetz\.org)/).*\.png$
在排除的URL中包含主机名为trac.edgewall.org或freetz.org。导入到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已经可以正常显示了。它们分别是:
如果您懂一点正则表达式或者想试试,很容易添加其他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: Redirector已不再在Chrome商店提供,但历史版本可以从旧的Redirector主页下载。
看起来你无法编辑你的MIME类型映射,可以查看"在Chrome或Firefox中以MIME类型查看"。
这个回答特别有趣。作者制作并开源了一个Chrome扩展程序,通过右键菜单添加的选项打开文件为不同的MIME类型,但它并没有提供全局处理机制。
编辑:
该扩展默认只有以text/html
和text/plain
打开的选项,但是您可以在扩展设置中添加任何您喜欢的扩展名,包括image/png
。这里有一个测试图片。
这个bug已经在2012年8月13日被转移到了Chromium bug跟踪器中的未分类,希望这个问题很快也会在Chrome中得到解决。
xfce4-settings
应用程序(特别是xfce4-mime-settings
)控制的。在Windows桌面上,您需要通过“控制面板”的“默认程序”部分进行设置,详细信息可以参考这里。RCDefaultApp
。而SwiftDefaultApps
https://github.com/Lord-Kamina/SwiftDefaultApps 是一个很好的替代品。 - TryTryAgain