如何压缩asp.net mvc应用程序发送的输出?如何在asp.net MVC中gzip内容?
回答
这是我用什么(因为这矩估计的时间):
using System.IO.Compression;
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);
}
}
}
使用在控制器:
[Compress]
public class BookingController : BaseController
{...}
还有其他的变数,但是这个效果很好。 (顺便说一句,我使用[压缩]属性我BaseController保存整个项目重复,而上述由控制器基础做一个控制器上。
[编辑]如上段所述。至简化使用,也可以包括在BaseController本身[Compress]
单冲,因此,每一个继承子控制器默认访问功能:
[Compress]
public class BaseController : Controller
{...}
相同的概念:)实际上,几乎相同的代码 – veggerby 2010-09-27 09:27:51
,看着你的例子 - 非常相似 - 真是令人毛骨悚然:)。我已经使用这个代码一年多了,所以可以验证它的工作得很好... – 2010-09-27 09:31:42
是可能的,我可以在web.config中做一些设置来进行压缩。还有一件事我想知道,如何检查我们在这里运行的压缩代码将多少开销添加到服务器。 – 2010-09-27 11:51:43
看一看这篇文章,概述了一个漂亮的方法利用措施筛选
例如
[CompressFilter]
public void Category(string name, int? page)
而作为一个额外的好处,它也包括一个CacheFilter
okie,测试这一点,我想知道的另一件事,我如何检查从服务器获取的数据是否是gzipped? – 2010-09-27 09:13:59
在本文中使用Firebug并查看响应头文件 – veggerby 2010-09-27 09:15:36
不适用于MVC5,IIS 8.5和.Net 4.5,我们将不胜感激。 – 2015-07-21 12:34:02
还可以增加使用压缩和缓存的响应数据表现 看看下面的链接: -
http://weblogs.asp.net/rashid/asp-net-mvc-action-filter-caching-and-compression
- 1. 在ASP.Net(MVC)中保存ApplicationState的内容
- 2. 如何使fuseki提供gzip内容?
- 3. 如何让JMeter请求gzip内容?
- 4. 在ASP.NET MVC中,如何提供纯静态内容?
- 5. 如何在asp.net中支持大尺寸内容mvc
- 6. 如何在asp.net mvc视图中使用unity3d webgl内容?
- 7. 如何在ASP.NET MVC中显示Flash(SWF)内容
- 8. ASP.NET MVC:静态内容
- 9. 如何在ASP.NET中实现GZip压缩?
- 10. 如何使用GZIP文件在Asp.net中?
- 11. 如何在Aerospike(缓存)中存储Gzip内容?
- 12. Safari不接受gzip内容?
- 13. 快速gzip静态内容
- 14. 如何使用ASP.NET MVC在内容页面调用CSS样式?
- 15. 如何让内容编辑,有限的时间在asp.net MVC 3
- 16. 如何检测响应内容类型在asp.net mvc
- 17. 如何高效地缓存asp.net mvc中的动态内容?
- 18. 在Android上处理gzip内容
- 19. ASP.NET MVC WEB API Gzip压缩 - 解压缩
- 20. asp.net的MVC包的gzip compresstion不行
- 21. ASP.Net MVC显示/隐藏内容
- 22. ASP.NET MVC&JQuery动态表单内容
- 23. ASP.NET MVC剃刀内容占位符
- 24. ASP.Net MVC博客内容存储
- 25. ASP.NET MVC和text/xml内容类型
- 26. ASP.NET MVC模式内容消失随机
- 27. Asp.Net MVC Ajax刷新表格内容
- 28. asp.net mvc共享内容目录
- 29. ASP.net MVC文件内容长度
- 30. 多语言内容网站ASP.NET MVC 3
为什么不只是设置''或'甚至在''web.comfig' HTTP:/ /www.iis.net/configreference/system.webserver/httpcompression http://stackoverflow.com/questions/9235337/gzipping-content-files-in-asp-net-mvc-3? –
Kuncevic
2013-12-30 00:56:59