asp.net的MVC包的gzip compresstion不行

问题描述:

我捆绑配置是这样的: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; 

    } 
} 

,我用包的内部index.cshtml这样的:

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

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

当VS2015调试网站或发布到IIS 8.5。捆绑和缩小按预期工作,但对于ScriptBundle和StyleBundle,捆绑未压缩。响应内容类型始终是文本/ JavaScript或文本/ CSS。 为什么gzip压缩不起作用?

chrome network tab screenshot

动态和静态内容压缩都被设置为true在web.config中

<system.webServer> 

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

MVC集的版本: System.Web.Mvc 5.2.3.0 System.Web.Optimization 1.1 .0 和Dynamic Compression模块也安装在服务器上。

新信息: 两个截图,第一个是IIS请求跟踪日志 ,显示动态压缩模块做它的工作,第二个是该请求的铬网络标签响应标头。为什么传输编码:分块和响应是不是gzip:\

IIS Trace Log

chrome network tab

感谢您的想法

+1

for IIS 7.5 but may help - http://stackoverflow.com/questions/6938713/gzip-compression-on-iis-7-5-is-not-working –

我发现问题点,客户端和IIS之间的网络相关硬件(防火墙)解压缩gzip数据和处理内容后,发送给客户端,当我尝试从公司以外的其他客户端,gzip压缩工作正如我所料。

+0

经过3个小时的服务器摆弄,解决了这个问题。无论如何,这可以克服? – PotatoJam

之前或之后<urlCompression>添加<httpCompression>部分你的web.config。这里是我的:

<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在这个文件夹中。

+0

刚刚添加配置,但没有成功 – tomcater

+1

对不起,didn没有工作。您是否已经完成了James提供的链接中的所有疑难解答?有很多因素可能会导致gzip无法正常工作。 http://stackoverflow.com/questions/6938713/gzip-compression-on-iis-7-5-is-not-working –

+0

编辑的问题,谢谢 – tomcater