.Net6 静态资源合并及压缩

MVC5中的BundleConfig已经被废弃了,这使用第三方库 Karambolo.AspNetCore.Bundling.NUglify

引用nuget包

Karambolo.AspNetCore.Bundling.NUglify或 Karambolo.AspNetCore.Bundling.WebMarkupMin

// 如果你还需要做less或scss等css预处理的操作
Karambolo.AspNetCore.Bundling.Less或Karambolo.AspNetCore.Bundling.Sass
// 如果需要对ES6语法做处理
Karambolo.AspNetCore.Bundling.EcmaScript

Program.cs中注入

builder.services.AddBundling().UseDefaults(builder.Environment) // 必需的,告诉中间件当前的处理环境路径相关
.UseNUglify() // 或者 .UseWebMarkupMin() 都可以实现静态资源捆绑压缩
.AddLess() // 启用less预处理
.AddSass() // 启用sass预处理
.AddEcmaScript() // 启用es6脚本预处理
.EnableMinification().EnableSourceIncludes(false)// 启用压缩及不显示源文件
.EnableCacheHeader(TimeSpan.FromDays(1)); // 启用客户端缓存头

配置资源

app.UseBundling(bundles =>
{
bundles.AddCss("/main.css").Include("/css/site.css").Include("/css/site1.css");
});

_ViewImports 中添加

@using Karambolo.AspNetCore.Bundling.ViewHelpers @addTagHelper *, Karambolo.AspNetCore.Bundling

就可以再View中使用

@await Styles.RenderAsync("~/bundles/main.css") @await Scripts.RenderAsync("~/bundles/main.js")

 

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注