• ASP.NET Core中间件


    WebMarkupMin可以做什么:

    运行时最小化html、css、js(去除空格、注释...)
    对HTTP启用压缩(GZip、Deflate、Brotli..)

    使用步骤:

    添加Nuget包:

    <PackageReference Include="WebMarkupMin.AspNet.Brotli" Version="2.8.1" />
    <PackageReference Include="WebMarkupMin.AspNetCore2" Version="2.8.8" />
    <PackageReference Include="WebMarkupMin.NUglify" Version="2.8.10" />
    

    ConfigureServices()方法中添加:

     services.AddWebMarkupMin(
                               options =>
                    {
                        options.AllowMinificationInDevelopmentEnvironment = true;//本地html调试必须设置为true,否则不生效
                        options.AllowCompressionInDevelopmentEnvironment = true;//本地API调试必须设置为true,否则不生效
                        options.DefaultEncoding = Encoding.UTF8;
                    })
                //Html压缩
                .AddHtmlMinification(options =>
                {
                    HtmlMinificationSettings settings = options.MinificationSettings;
                    settings.RemoveRedundantAttributes = true;
                    settings.RemoveHttpProtocolFromAttributes = true;
                    settings.RemoveHttpsProtocolFromAttributes = true;
                    settings.RemoveTagsWithoutContent = true;
                    settings.RemoveEmptyAttributes = true;
                    settings.RemoveHtmlComments = true;
                    settings.RemoveHtmlCommentsFromScriptsAndStyles = true;
                    settings.RemoveJsProtocolFromAttributes = true;
                    settings.MinifyEmbeddedJsCode = false;
                    settings.MinifyEmbeddedCssCode = true;
                    settings.MinifyEmbeddedJsonData = false;
                    settings.MinifyInlineCssCode = true;//页面内css压缩
                    settings.MinifyInlineJsCode = false;//页面内js压缩
                    options.CssMinifierFactory = new NUglifyCssMinifierFactory();
                    options.JsMinifierFactory = new NUglifyJsMinifierFactory();
                })
                //Http压缩
                .AddHttpCompression(options =>
                {
                    options.CompressorFactories = new List<ICompressorFactory>
                    {
                        new BrotliCompressorFactory(new BrotliCompressionSettings
                        {
                             Level = (int)CompressionLevel.Fastest
                        })
                        ,
                        new GZipCompressorFactory(new GZipCompressionSettings
                        {
                            Level = CompressionLevel.Fastest
                        })
                        ,
                        new DeflateCompressorFactory(new DeflateCompressionSettings
                        {
                            Level = CompressionLevel.Fastest
                        })
                    };
                })
                ;
    

    Configure方法中添加:

    app.UseWebMarkupMin();
    

    参考:
    https://andrewlock.net/html-minification-using-webmarkupmin-in-asp-net-core/

  • 相关阅读:
    最小树形图 朱刘算法模板+建边技巧
    模板倍增LCA 求树上两点距离 hdu2586
    【瞎搞题】gym226123 L. For the Honest Election
    【凸包板题】Gym
    集合3
    集合2
    集合1
    常用API&异常
    内部类&API
    多态&接口类&接口
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/13896356.html
Copyright © 2020-2023  润新知