نحوه فعال سازی Compression در Asp.net Mvc و. افزایش چشم گیر سرعت وبسایت به صورت کاملا کاستومایز و حرفه ای .
ابتدا باید WebmarkupMin Asp.net4 را با ناگت نصب کرده.
سپس باید یک کلاس در پوشه App_Statrt ایجاد کرده و یک اکشن فیلتر به صورت زیر تعریف نماییم:
using System.Collections.Generic; using WebMarkupMin.AspNet.Brotli; using WebMarkupMin.AspNet.Common; using WebMarkupMin.AspNet.Common.Compressors; using WebMarkupMin.AspNet.Common.UrlMatchers; using WebMarkupMin.AspNet4.Common; using WebMarkupMin.Core; using WebMarkupMin.MsAjax; using WebMarkupMin.Yui; namespace KopolArtWebSite { public class WebMarkupMinConfig { public static void Configure(WebMarkupMinConfiguration configuration) { configuration.AllowMinificationInDebugMode = true; configuration.AllowCompressionInDebugMode = true; IHtmlMinificationManager htmlMinificationManager = HtmlMinificationManager.Current; htmlMinificationManager.ExcludedPages = new List<IUrlMatcher> { new WildcardUrlMatcher("/minifiers/x*ml-minifier"), new ExactUrlMatcher("/contact") }; HtmlMinificationSettings htmlMinificationSettings = htmlMinificationManager.MinificationSettings; htmlMinificationSettings.RemoveRedundantAttributes = true; htmlMinificationSettings.RemoveHttpProtocolFromAttributes = true; htmlMinificationSettings.RemoveHttpsProtocolFromAttributes = true; htmlMinificationManager.CssMinifierFactory = new MsAjaxCssMinifierFactory(); htmlMinificationManager.JsMinifierFactory = new MsAjaxJsMinifierFactory(); IXhtmlMinificationManager xhtmlMinificationManager = XhtmlMinificationManager.Current; xhtmlMinificationManager.IncludedPages = new List<IUrlMatcher> { new WildcardUrlMatcher("/minifiers/x*ml-minifier"), new ExactUrlMatcher("/contact") }; XhtmlMinificationSettings xhtmlMinificationSettings = xhtmlMinificationManager.MinificationSettings; xhtmlMinificationSettings.RemoveRedundantAttributes = true; xhtmlMinificationSettings.RemoveHttpProtocolFromAttributes = true; xhtmlMinificationSettings.RemoveHttpsProtocolFromAttributes = true; xhtmlMinificationManager.CssMinifierFactory = new YuiCssMinifierFactory(); xhtmlMinificationManager.JsMinifierFactory = new YuiJsMinifierFactory(); IXmlMinificationManager xmlMinificationManager = XmlMinificationManager.Current; XmlMinificationSettings xmlMinificationSettings = xmlMinificationManager.MinificationSettings; xmlMinificationSettings.CollapseTagsWithoutContent = true; IHttpCompressionManager httpCompressionManager = HttpCompressionManager.Current; httpCompressionManager.CompressorFactories = new List<ICompressorFactory> { new BrotliCompressorFactory(), new DeflateCompressorFactory(), new GZipCompressorFactory() }; } } }
لازم به ذکر است هر کدام از کتابخانه ها که در پروژه شما موجود نبود را باید از همان ناگت نصب کنید، کافیست اسم آن را کپی و در سرچ ناگت جستجو کنید.
مرحله بعدی تنظیم فشرده سازی در Application_Start درست بعد از اینکه route ها را register کردید قرار دهید.
WebMarkupMinConfig.Configure(WebMarkupMinConfiguration.Instance);
مرحله سوم:
درصورتی که این کانفیگ را در وب کانفیگ دارید، حذف کنید.
<!--<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true" />-->
کار تمام است!
من این این تنظیمات را در سایت خودم(kopolart.ir) فعال کردم و تاثیر بسیار زیادی برام داشت. امیدوارم برای شما هم مفید بوده باشد.