در این مطلب از سایت میرممد یک تکه کد آماده براتون میذارم که فشرده سازی Gzip رو برای شما روی ASP.net MVC انجام میده.
سبک بودن و لود سریع صفحات اهمیت زیادی در سئو داره.
برای این کار کلاس زیر را با اسم Compress.cs در فولدر App_Start بسازید :
using System.IO.Compression;
using System.Web.Mvc;
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] بالای کنترلر یا یک اکشن استفاده کنید :
[Compress]
public ActionResult Books()
{
return View();
}
امیدوارم مفید بوده باشه.
میرممد ,response ,encodingsaccepted ,compress ,filter ,gzip ,response filter , { ,فشرده سازی , response ,filter compressionmode ,response filter compressionmode ,filter compression منبع
درباره این سایت