如何壓縮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,_ViewStart.cshtml內容
- 2. 在ASP.Net(MVC)中保存ApplicationState的內容
- 3. 如何讓JMeter請求gzip內容?
- 4. 如何使fuseki提供gzip內容?
- 5. 如何在ASP.NET MVC中顯示Flash(SWF)內容
- 6. 如何在ASP.NET MVC中緩存外部靜態內容
- 7. 如何在asp.net中支持大尺寸內容mvc
- 8. 如何使用Razor Engine在ASP.NET MVC中輸出此內容?
- 9. 在ASP.NET MVC中,如何提供純靜態內容?
- 10. 如何在Asp.net MVC中獲取文本區域的內容
- 11. 如何在asp.net mvc視圖中使用unity3d webgl內容?
- 12. ASP.NET MVC:靜態內容
- 13. 在Silverlight中請求GZip內容
- 14. 如何使用GZIP文件在Asp.net中?
- 15. 如何在ASP.NET中實現GZip壓縮?
- 16. 如何在tomcat中設置內容編碼gzip
- 17. 如何在Aerospike(緩存)中存儲Gzip內容?
- 18. 如何閱讀在http響應中發送的GZip內容
- 19. ASP.NET主內容-IFRAME到ASP.NET MVC
- 20. 如何從ASP.NET MVC中的JsonResult操作返回gzip json?
- 21. 如何在asp.net中顯示url內容
- 22. 使用「內容編碼」:「GZIP」
- 23. 閱讀gzip內容信息
- 24. Safari不接受gzip內容?
- 25. 如何高效地緩存asp.net mvc中的動態內容?
- 26. 如何讀取ASP.Net MVC中的文件內容?
- 27. 如何檢測響應內容類型在asp.net mvc
- 28. 如何將內容添加到html.label在javascript asp.net mvc
- 29. 如何使用ASP.NET MVC在內容頁面調用CSS樣式?
- 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