Включить Mime-типы сжатия для приложения веб-сайта
Наш сайт использует как динамическое, так и статическое сжатие. Я знаю, что сжатие может быть включено / отключено на уровне web.config, но что MIME-типы для статического и динамического сжатия не могут быть включены на уровне веб-конфигурации.
Значение этого раздела:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" staticCompressionIgnoreHitFrequency="true">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
Stuff
</staticTypes>
<dynamicTypes>
Stuff
</dynamicTypes>
</httpCompression>
Должен идти в applicationHost.config, и обычно редактируется с помощью appcmd.exe.
Я знаю, что есть location
элемент applicationHost.config, который позволяет устанавливать множество параметров для каждого веб-сайта, но я не могу найти нигде, если mimetypes для динамического сжатия являются одним из них.
Я попытался переопределить эти настройки, используя элемент location, но не добился успеха и не могу найти документацию, подтверждающую, что это возможно для httpCompression
элемент.
Что еще хуже, мы устанавливаем наш продукт как веб-приложение на сайте по умолчанию, поэтому на самом деле мы хотим, чтобы эти динамические MIME-типы сжатия были включены только для нашего приложения, а не для всего сайта (или сервера). Это возможно?
Как правило, мы используем IIS 7 и выше. Прямо сейчас наш минимум равен 7, поэтому предположим, что с этим нужно что-то делать.
Мой вопрос: может httpCompression
настройки будут установлены в applicationHost.config для каждого веб-сайта и возможны ли для каждого веб-приложения на веб-сайте? Есть ли другой способ включить динамические особенности сжатия на уровне веб-сайта / веб-приложения?
Спасибо
2 ответа
Просто важная точность: есть одно условие, чтобы гарантировать, что вы можете добавить MIME-типы в файл "web.config":
Добавлять MIME-типы в разделы
Важно отметить, что изменив ваш applicationHost.config (в%windir%\system32\inetsrv\config) из следующего параметра:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
чтобы:
<section name="httpCompression" overrideModeDefault="Allow" />
включит настройку тега httpCompression под тегом system.webServer в вашем файле web.config.
Да, вы можете очень хорошо добавить динамические и статические типы в файл web.config веб-приложения. ApplicationHost.config определит глобальные параметры сжатия, и если вы хотите переопределить их в своем приложении, вы можете сделать это. Ниже приведен образец одного из моих приложений.
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
<add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" preCondition="integratedMode" />
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="Glimpse" path="glimpse.axd" verb="GET" type="Glimpse.AspNet.HttpHandler, Glimpse.AspNet" preCondition="integratedMode" />
</handlers>
<httpCompression>
<dynamicTypes>
<remove mimeType="text/*" />
<add mimeType="application/json" enabled="true" />
</dynamicTypes>
</httpCompression>
- Здесь remove tag в dynamicTypes удаляет глобальную запись, поступающую из ApplicationHost.config
- Тег add добавляет дополнительный mimeType поверх глобальных записей из applicationHost.config. Это дополнение будет применимо только для тех, чей web.config изменяется.
Точно так же вы можете изменить staticTypes.