Как редактировать сопоставления типов Chrome MIME? - PullRequest
23 голосов
/ 30 ноября 2011

Я открыл изображение типа image / x-png в новой вкладке, но Chrome только что загрузил его.Я прогуглил его и обнаружил, что Chrome не интерпретирует image / x-png как файл изображения.

Итак, я хочу отредактировать сопоставления типов MIME в Chrome.Возможно ли это?

Ответы [ 4 ]

19 голосов
/ 02 сентября 2012

Жаль, что вы не ответили на мой комментарий, поэтому я забыл о вашем вопросе и потерял награду. Я думаю, что мой ответ даже немного проще для вас, потому что вам не нужно нажимать какие-либо контекстные меню, чтобы увидеть PNG прямо в браузере:

Расширение Chrome Перенаправитель можно настроить для замены заголовков ответа HTTP. Я создал правило, заменяющее заголовок Content-Type для любого URL-адреса, заканчивающегося на «.png»:

Вставьте этот код 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 , которые создают URL-адреса для вложений PNG, оканчивающихся на ".png", но на самом деле являются HTML-страницами, которые встраивают только PNG как часть стр. В этом случае нам нужно занести в черный список хосты, так как в противном случае тип содержимого страницы HTML будет установлен на image / png , даже если он останется text / html . Из-за ограничения Redirector , что заголовки могут быть просто перезаписаны для совпавших URL-адресов и частичной замены, например, только png вместо x-png невозможно, нам нужно использовать довольно уродливый подход явного исключения определенных хостов из соответствия регулярному выражению. Э.Г.

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

исключает URL-адреса, содержащие имя хоста trac.edgewall.org или freetz.org . Полный JSON для импорта в Redirector - это правило версия 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 хорошей альтернативой будет использование общей части "/ 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 домашней страницы .

15 голосов
/ 27 августа 2012

Похоже, вы не можете редактировать сопоставления типов MIME, см. «Просмотр как MIME-тип» в Chrome или Firefox

Этот ответ https://stackoverflow.com/a/8724758/962091 представляет особый интерес. Автор создал и открыл расширение Chrome для открытия файлов с различными типами MIME с помощью добавленного пункта меню при щелчке правой кнопкой мыши, хотя оно не обеспечивает глобального механизма обработки.

EDIT:

Расширение по умолчанию имеет только опции для открытия как text/html и text/plain, но вы можете добавить любые расширения, которые вам нравятся, включая image/png, в настройках расширений. Вот тестовое изображение .

Эта ошибка была перемещена в Неуправляемый 13 августа 2012 года в трекере ошибок Chromium , так что, надеюсь, это скоро будет исправлено и в Chrome.

2 голосов
/ 10 июля 2014

По какой-то причине они удалили перенаправитель из интернет-магазина Chrome.Вы можете найти любую версию перенаправителя здесь

Вот json для форматов .jpg .gif и .png:

[{"name": "x-png -> png "," match ": {" str ":" \. png $ "," type ": 0," modi ": false}," sub ": {" str ":" Content-Type ", "тип": 4, "модифицированный": правда, "Mod ^": истинно}, "REPL": { "ул": "изображение / PNG", "расшифровывает" ложь}, "включен": 1}, {"name": "x-jpg -> jpg", "match": {"str": "\. jpg $", "type": 0, "modi": false}, "sub": {"str": "Content-Type", "тип": 4, "модифицированный": правда, "Mod ^": истинно}, "REPL": { "ул": "изображение / JPG", "расшифровывает" ложь}, "включен": 1}, {" name ":" x-gif -> gif "," match ": {" str ":" \. Gif $ "," type ": 0," modi ": false}," sub": {" ул ":" Content-Type», "тип": 4, "модифицированный": правда, "Mod ^": истинно}, "REPL": { "ул": "изображение / GIF", "расшифровывает": false}, «включено»: 1}]

1 голос
/ 07 июня 2017

Существует расширение Chrome, которое может изменять тип содержимого и расположение для любого шаблона, поэтому его можно использовать для принудительного отображения png вместо загрузки (но это хорошо для многих других случаев, я использую его дляотображать текст как HTML): Изменить расширение Chrome для содержимого типа

...