ima*_*c84 98 compression iis asp.net-mvc gzip asp.net-mvc-3
有谁知道如何在MVC 3中启用gzip压缩?我正在使用IIS7.
Google Chrome Audit的结果:
- 启用gzip压缩(4)
- 使用gzip压缩以下资源可以将传输大小减少大约三分之二(~92.23KB):
- / mydomain /可以节省~1.53KB
- jquery-1.4.4.min.js可以节省~51.35KB
- Cufon.js可以节省~11.89KB
- Futura.js可以节省~27.46KB
Rob*_*Rob 139
您可以通过web.config文件配置压缩,如下所示:
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
您可以在iis.net/ConfigReference上找到此配置元素的文档.这相当于:
注意:( 正如评论中所指出的)您需要确保安装了Http Dynamic Compression,否则设置doDynamicCompression="true"将不起作用.最快的方法是:
optionalfeatures(这是进入"打开或关闭Windows功能"窗口的最快方法)Net*_*oke 31
如果您愿意,可以在代码中执行此操作.我会创建一个基本控制器,每个控件都继承自己,并使用下面的属性来装饰它.
public class CompressAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(encodingsAccepted)) return;
encodingsAccepted = encodingsAccepted.ToLowerInvariant();
var response = filterContext.HttpContext.Response;
if (encodingsAccepted.Contains("deflate"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
else if (encodingsAccepted.Contains("gzip"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50809 次 |
| 最近记录: |