سلام و عرض ادب خدمت دوستان عزیزم.
علاوه بر آموزش کامل و جامع استاد مدائنی و خلاصه سازی کدهای HTML می توان Gzip را نیز در سایت با همین کتابخانه Wbmarkup min فعال سازی کرد به شرح زیر است.
ابتدا باید 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) فعال کردم و تاثیر بسیار زیادی برام داشت. امیدوارم برای شما هم مفید بوده باشد.