asp.net в MVC связки с помощью gzip compresstion не работать



Конфигурация моего пакета выглядит так:



public class BaseBundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/Models").IncludeDirectory("~/Scripts/models/", "*.js", true));

bundles.Add(new ScriptBundle("~/bundles/framework").Include(
"~/Scripts/framework/frameworkmodels.js",
"~/Scripts/framework/appbase.js",
"~/Scripts/framework/directives/directives.js",
"~/Scripts/framework/services/Services.js",
"~/Scripts/framework/controllers/controllers.js",
"~/Scripts/framework/filter/filters.js",
"~/Scripts/app/filter/customFilters.js"
).Include("~/Scripts/app.js"));


bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/libs/bootstrap/bootstrap.min.css",
"~/Content/libs/bootstrap/bootstrap-theme.min.css",
"~/Content/libs/bootstrap/angular-csp.css",
"~/Content/libs/bootstrap/mainStyle.css"
));

BundleTable.EnableOptimizations = true;

}
}


И я использовал внутренний индекс бандла.cshtml вот так:



......
@System.Web.Optimization.Scripts.Render("~/bundles/framework")

.....
@System.Web.Optimization.Styles.Render("~/Content/css")


При отладке сайта на VS2015 или публикации в IIS 8.5. объединения и минификации работает, как ожидалось, но связки не сжимаются для ScriptBundle и StyleBundle. тип содержимого ответа всегда является text / javascript или text / css.
почему сжатие gzip не работает??



скриншот вкладки Chrome network



Динамическое и статическое сжатие контента имеют значение true в web.конфиг



<system.webServer>

<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>


Версия сборки MVC:
Система.Сеть.В MVC 5.2.3.0
Система.Сеть.Оптимизация 1.1.0
и модуль динамического сжатия также установлен на сервере.



Новая информация:
два скриншота, первый-это журнал трассировки запросов IIS
это показывает, что модуль динамического сжатия выполняет свою работу, а второй-заголовки ответов Chrome network tab для этого запроса. почему Transfer-Encoding: chunked и ответ не gzip:



Журнал трассировки IIS



вкладку сетевые хром



Спасибо за ваши идеи

705   2  

2 ответов:

Добавьте раздел <httpCompression> в свой веб-сайт.config до или после <urlCompression>. Вот мое:

<httpCompression directory="%SystemDrive%\websites\_compressed" minFileSizeForComp="1024">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>               
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>

Обратите внимание, что это не срабатывает, если пакет не составляет 1024 байта или больше (minFileSizeForComp), поэтому вы не тратите время на сжатие файлов, которые уже очень малы.

Обратите также внимание, что вам нужно будет убедиться, что gzip.dll находится в этой папке.

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

Comments

    Ничего не найдено.