有人知道如何在MVC3中启用gzip压缩吗?我使用的是IIS7。
Google Chrome Audit的结果:
<代码>H113Futura.js可节省约27.46KB<代码>H214<代码>G215
发布于 2011-08-09 15:44:28
您可以通过web.config
文件配置压缩,如下所示:
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
您可以在iis.net/ConfigReference上找到此配置元素的文档。这相当于:
通过左侧的树视图打开互联网信息服务(IIS Manager)
注意:(如评论中所指出的)您需要确保安装了Http Dynamic Compression,否则设置doDynamicCompression="true"
将不起任何作用。完成此操作的最快方法是:
Windows >键入Windows (这是打开或关闭功能的最快方法,可通过window)
optionalfeatures
安装component发布于 2012-06-30 05:35:19
如果你更愿意这样做,你可以用代码来做。我会做一个每个控件都继承的基本控制器,并用下面的属性来装饰它。
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);
}
}
}
发布于 2011-08-09 15:36:25
在服务器级别启用/禁用压缩。请参阅IIS管理控制台中的iis压缩模块。
以下是来自微软网站的the instructions for IIS。
https://stackoverflow.com/questions/6992524
复制相似问题