终于等到你!WebOptimizer - A bundler and minifier for ASP.NET Core
迷人的 ASP.NET Core 有一个美中不足之处,自从一开始接触它到现在,我就一直不喜欢,一直想找到替代品,甚至想过自己实现一个,它就是 BundlerMinifier 。
昨天面对 bundleconfig.json 中的一堆配置,又带着侥幸的心理试着在网上搜了搜看有没有替代品,突然发现了 WebOptimizer :
ASP.NET Core middleware for bundling and minification of CSS and JavaScript files at runtime. With full server-side and client-side caching to ensure high performance. No complicated build process and no hassle.
一看介绍就感觉它就是我一直在苦苦寻找与等待的,于是立马在项目中尝试体验。
先安装 nuget 包
dotnet add package LigerShark.WebOptimizer.Core
然后在 Startup 的 ConfigureServices 中配置好 Bundle 并注册到依赖注入容器
public void ConfigureServices(IServiceCollection services)
{
services.AddWebOptimizer(ConfigureBundles);
} private void ConfigureBundles(IAssetPipeline pipeline)
{
pipeline.AddCssBundle("/css/signup.min.css",
"css/account/signup.css"); pipeline.AddJavaScriptBundle("/js/signup.min.js",
"lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js",
"lib/jquery-validation/dist/jquery.validate.js",
"js/account/signup.js");
}
接着通过 Startup 的 Configure 将其添加到 Middleware 管线
public void Configure(IApplicationBuilder app)
{
app.UseWebOptimizer();
}
最后在 _ViewImports.cshtml 中添加 WebOptimizer.Core 的 TagHelper 引用
@addTagHelper *, WebOptimizer.Core
添加 TagHelper 之后,WebOptimizer.Core 会自动给视图中的 css/js 引用加上版本号查询字符串,连 asp-append-version="true" 都不需要,比如下面的 css/js 引用
<link href="~/css/signup.min.css" rel="stylesheet" />
<script src="~/js/signup.min.js"></script>
会被自动转换为
<link href="/css/signup.min.css?v=l1oNLvTwQYc06WsxQTHsgCtv7Hs" rel="stylesheet" />
<script src="/js/signup.min.js?v=_b5vuVfEmb-PSHHvHWLVB7PPi7w"></script>
这样就搞定了!
果然它就是我一直在找的 BundlerMinifier 的替代品。
补充:
如何让 WebOptimizer 在 Development 环境下不对 css/js 进行打包
注意:
WebOptimizer 使用的 css minifier 引擎是 Uglify ,在处理有些 css 文件时会造成 CPU 100% ,我们就实际遇到过。
终于等到你!WebOptimizer - A bundler and minifier for ASP.NET Core的更多相关文章
- 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...
- 终于等到你---订餐系统之负载均衡(nginx+memcached+ftp上传图片+iis)
又见毕业 对面工商大学的毕业生叕在拍毕业照了,一个个脸上都挂满了笑容,也许是满意自己四年的修行,也许是期待步入繁华的社会... 恰逢其时的连绵细雨与满天柳絮,似乎也是在映衬他们心中那些离别的忧伤,与对 ...
- 终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了
前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...
- 终于等到你!阿里正式向 Apache Flink 贡献 Blink 源码
摘要: 如同我们去年12月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源.今天,我们终于等到了这一刻. 阿里妹导 ...
- Bundler和Minifier Visual Studio扩展
原文地址:https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BundlerMinifier 特征 将CSS,Java ...
- ASP.NET Core新书终于上市,完成今年一个目标,赠书活动
2018年.NET Core 2.0发布后,开始逐步学习.NET Core 并逐步在新的项目中使用ASP.NET Core.并且零零散散写的写了将近30篇学习笔记发到园子里,包括ASP.NET Cor ...
- WebGL on iOS8 终于等到了这一天
WWDC2014刚结束,这次的大会是名符其实的开发者大会,更贴切的应该说的确是一次软件开发者的大会,对于OSX和iOS的更多功能特性让人兴奋,Swift新语言促成了如上图片 但我更感兴趣的是WebGL ...
- 终于等到你!MobileTest免费公测,华为带你走出安卓适配大坑
一.安卓适配之痛真的无解吗? Android平台的诞生对智能手机的普及功不可没,但设备繁多.品牌众多.版本各异,芯片.摄像头.分辨率不统一等等,这些都逐渐成为Android系统发展的障碍,碎片化严重不 ...
- 终于等到你: 图形化开源爬虫Hawk 3发布!
超级图形化爬虫Hawk已经发布两年半时间了,2015年升级到第二版,收到上千条用户反馈(tucao),100多个红包,总共666块五毛~一直想攒着这笔钱,去北境之王天通苑的龙德商场买最心爱的阿迪王! ...
随机推荐
- docker-mysql-cron-backup不能执行任务
https://github.com/shiningrise/docker-mysql-cron-backup CRON_TIME=“0 18 * * * ?” 改为 CRON_TIME=0 18 * ...
- golang协程池设计
Why Pool go自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在g ...
- JSON.stringify转化报错
两种方式会导致该错误:1.json格式数据存在循环调用. 举个例子: var obj = { title: '标题'}obj.content = obj;JSON.stringify(obj); ...
- python(62):保留两位小数
转载:https://blog.csdn.net/jiandanjinxin/article/details/77752297 在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分). 例如 ...
- eclipse下安装windowbuilder(一定要看)
访问页面https://www.eclipse.org/windowbuilder/download.php,查看更新连接 这个是**连接地址**,要复制粘贴到eclipse里. !! 复制地址!!
- opcache分享
opcache的技术分享ppt,独家唯一经过自己实验的分享 https://pan.baidu.com/s/1-73-QHOSeet7tcR81gto6Q
- Unity读Excel 输出PC端(Windows)后不能读取的问题
问题:在Unity中用ExcelDataReader读Excel时,在编辑器模式下可以正常读取,但是在导出PC端app后读Excel却会报空,Excel读取失败. 要点: 1.把库文件Excel.dl ...
- Spring-Cloud-Gateway 从升级到放弃
1 为什么要升级为spring-cloud-gateway? Spring Cloud Gateway features: Built on Spring Framework 5, Project R ...
- 空的OnGUI也会有gc
一个空场景,添加如下代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public ...
- [Z] C#程序中设置全局代理(Global Proxy)
https://www.cnblogs.com/Javi/p/7274268.html 1. HttpWebRequest类的Proxy属性,只要设置了该属性就能够使用代理了,如下: 1 ...