Как заставить IIS сжимать файлы .svg?

Я пытаюсь выполнить это в web.config:

<staticContent>
  <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
<httpCompression>
    <staticTypes>
        <add mimeType="image/svg+xml" enabled="true"/>
    </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

Но Content-Encoding: gzip никогда не появляется в заголовках ответов. Хотя, сжатие работает хорошо для других типов, таких как CSS.

Ответ 1

Обходной путь использования Evgenyt не требуется и может не работать во всех браузерах. Вот решение.

Ответ 2

Вам нужно включить его для SVG в IIS как более низкий уровень. У этого сообщения есть ответ: fooobar.com/questions/376191/...

Ответ 3

Изменение типа mime действительно не так.

См. это сообщение вместо этого о том, как реализовать пользовательский httpmodule, который делает gzipping для вас в нескольких строках кода.

http://laubplusco.net/gzip-svg-files-asp-net/

Ответ 4

@Dominique Alexandre указывает на решение, которое показывает, как вы можете редактировать файл applicationHost.config, который работает отлично.

Я просто хотел добавить, как вы можете это сделать, используя графический интерфейс диспетчера IIS.

Перейдите в диспетчер IIS > YOUR_SERVER > В разделе "Управление" > "Редактор конфигурации" > Разверните файл system.webServer > httpCompression > dynamicTypes

И затем добавьте типы mime, которые вы хотите дополнительно сжать.

Ответ 5

В моем случае image/svg+xml уже был указан как тип mime в <staticTypes>, но он все еще не работал. По прихоти я также добавил тип mime на <dynamicTypes>, и это решило проблему.

Ответ 6

Не важно, см. решение Dominique Alexandre

Хорошо, никто не имеет ответа. Поэтому я отправлю здесь свое временное решение.

Я изменил тип mime на text/xml, поэтому он получает GZipped от IIS:

<mimeMap fileExtension=".svg" mimeType="text/xml" />