MVC4的bundling功能简介
2024-08-22 02:21:27
Bundling and Minification是asp.net mvc4中一项可以减少用户请求等待时间,提升用户体验的一项技术。在VS2010中新建MVC4项目是,如果选择"基本"项目,项目模板就会默认使用该项技术。但如果是选择“空”项目,或者想为自己原来的项目添加这项技术,该如何做呢。主要要以下几步:
在项目中选择引入System.Web.Optimization。
在Global.asax加入BundleConfig.RegisterBundles(BundleTable.Bundles)
在两个web.config中加入<add namespace="System.Web.Optimization" />(不加系统会提示CSHTML页中的SCRIPT等不存在)
在app_start下建立BundleConfig.cs,建立绑定。内容如下:
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*")); bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
"~/Scripts/knockout-{version}.js")); // Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*")); //所有的js
bundles.Add(new ScriptBundle("~/bundles/js_all").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/knockout-{version}.js",
"~/Scripts/modernizr-*")); bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css")); bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.*")); //所有的css
bundles.Add(new StyleBundle("~/Content/css_all").Include(
"~/Content/site.css",
"~/Content/themes/base/jquery.ui.*"));
}再在母版页中加入:
@Styles.Render("~/Content/css_all")
@Scripts.Render("~/bundles/js_all")大功告成,这里还有一步很关键的,就是把WebConfig中的Debug设置改为false,然后<Ctrl>+<F5>看网站,非常棒,对吧……
也许你要说我有些地方其实不需要那么多的js或者css呢,它都帮我捆了起来岂不是会降低效率?——基本上不会,因为浏览器都有缓存的功能,除非你按F5刷新页面,(如果是苹果系统的话我记得是<Command>+<R>),浏览器才会尝试从服务器上重新下载js和css,就算重新下载,经过捆绑和压缩的js和css也没多大,效率还行的。如果你实在不想捆那么多js或者css的,那就把bundling设置得细一些,但这样的话就可能导致更多次的请求,从而效率有所下降,总之就是要自己好好权衡了。
最新文章
- SpringMVC的工作原理
- JAVA一个关于传递引用的测试
- div模块变灰
- js执行引擎(js解释器)
- 手机网页中的hover效果实现
- Queuing(以前写的没整理)
- Python当前文件路径与文件夹删除操作
- 解决NSURLConnection finished with error - code -1100错误
- rem 自适应、整体缩放
- 360在线网站安全检测,web安全测试AppScan扫描工具,XSS常用的攻击手法
- BZOJ 4571 【SCOI2016】 美味
- ZOJ 2965 Accurately Say ";CocaCola";!
- Windows系统环境变量之path环境变量(Java, Python环境变量配置)
- 免费180天的Ashampoo Anti-Virus 2014
- npm 常用指令
- wcur LOCATE +
- HDU 3345
- 从Entity Framework的实现方式来看DDD中的repository仓储模式运用
- css里面鼠标的形状-----》easyui哪点事
- 关于";作数类型冲突: nvarchar 与 image 不兼容";的问题