Ответ 1
Обходной путь использования Evgenyt не требуется и может не работать во всех браузерах. Вот решение.
Я пытаюсь выполнить это в 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.
Обходной путь использования Evgenyt не требуется и может не работать во всех браузерах. Вот решение.
Вам нужно включить его для SVG в IIS как более низкий уровень. У этого сообщения есть ответ: fooobar.com/questions/376191/...
Изменение типа mime действительно не так.
См. это сообщение вместо этого о том, как реализовать пользовательский httpmodule, который делает gzipping для вас в нескольких строках кода.
@Dominique Alexandre указывает на решение, которое показывает, как вы можете редактировать файл applicationHost.config, который работает отлично.
Я просто хотел добавить, как вы можете это сделать, используя графический интерфейс диспетчера IIS.
Перейдите в диспетчер IIS > YOUR_SERVER > В разделе "Управление" > "Редактор конфигурации" > Разверните файл system.webServer > httpCompression > dynamicTypes
И затем добавьте типы mime, которые вы хотите дополнительно сжать.
В моем случае image/svg+xml
уже был указан как тип mime в <staticTypes>
, но он все еще не работал. По прихоти я также добавил тип mime на <dynamicTypes>
, и это решило проблему.
Не важно, см. решение Dominique Alexandre
Хорошо, никто не имеет ответа. Поэтому я отправлю здесь свое временное решение.
Я изменил тип mime на text/xml, поэтому он получает GZipped от IIS:
<mimeMap fileExtension=".svg" mimeType="text/xml" />