Ответ 1
Слишком плохо, что вы не ответили на мой комментарий, поэтому я забыл о вашем вопросе и потерял щедрость. Думаю, мой ответ даже немного удобнее для вас, потому что вам не нужно нажимать контекстное меню, чтобы видеть 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-страницы будет установлен на изображение /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-страниц) с предыдущей версией правила без "черного списка" и теперь функционирующей с новым правилом, включая "черный список":
- http://trac.edgewall.org/attachment/ticket/10804/changeset_show_files_3.png
- http://freetz.org/attachment/ticket/1908/arris1.png
Легко добавить другие 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: Редиректор больше не доступен в магазине Chrome, но исторические версии можно загрузить со старой Домашняя страница Redirector.