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压缩不起作用?
动态和静态内容压缩都被设置为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之间的网络相关硬件(防火墙)解压缩gzip数据和处理内容后,发送给客户端,当我尝试从公司以外的其他客户端,gzip压缩工作正如我所料。
经过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在这个文件夹中。
for IIS 7.5 but may help - http://stackoverflow.com/questions/6938713/gzip-compression-on-iis-7-5-is-not-working –