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设置得细一些,但这样的话就可能导致更多次的请求,从而效率有所下降,总之就是要自己好好权衡了。

MVC4的bundling功能简介的更多相关文章

  1. DYN-B201 Dynamics CRM 云生产力解决方案与功能简介

    DYN-B201 Dynamics CRM 云生产力解决方案与功能简介 讲师:王健.林松涛Dynamics CRM 云产品正式落地中国,CRM 与 Azure.O365 深度整合无缝集成,带来无与伦比 ...

  2. (视频) 《快速创建网站》 2.3 WordPress初始化和功能简介

    本文是<快速创建网站>系列的第4篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  3. SharePoint 2013 "通知我"功能简介

    功能简介 "通知我"主要是在列表或者文档库里面的项目,有添加/删除/修改等操作,发送邮件通知设置的用户的功能:可以针对列表或者文档库设置通知,也可以针对单一项目设置通知功能,是Sh ...

  4. Beginning SDL 2.0(1) SDL功能简介

    原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解S ...

  5. HelloX操作系统网络功能简介及使用和开发指南

    HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌 ...

  6. 部分GDAL工具功能简介

    主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. ...

  7. 全国天气预报信息数据 API 功能简介与代码调用实战视频

    此文章对开放数据接口 API 之「全国天气预报信息数据 API」进行了功能介绍.使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用,并对实战开发进行了视频演示. 1. 产品功能 接口开放了 ...

  8. Hadoop生态圈-Ambari控制台功能简介

    Hadoop生态圈-Ambari控制台功能简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在经历一系列安装过程之后(部署过HDP后我终于发现为什么大家喜欢用它了,部署比CDH简 ...

  9. Redis安装和主要功能简介

    Redis安装和主要功能简介   Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 安装Redis 我很少在开发机中直接装各种数 ...

随机推荐

  1. P44、面试题4:替换空格

    题目:请实现一个函数,把字符串中的每个空格替换成“%20”.例如输入“We are happy.”,则输出“We%20are%20happy.”. 如果用java string类中提供的replace ...

  2. Windbg调试命令详解(3)

    3 进程与线程 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 3.1 进程命令 进程命令包括这些内容:显示进程 ...

  3. VS2005下开发PPC2003和WM50编译器一些设置

    1.vs2005开发WM5时,编译器和linker的选项配合问题 链接:http://www.mivi.name/blog/index_en.php?itemid=258 首先说ARM4 ARM4T ...

  4. 微软嵌入式WEC2013产品研讨会(深圳站---2013.10.16)

    主要内容如下: 1.      Windows Embedded Compact 2013面向的市场 主要面向工业自动化.医疗设备和零售行业这些市场,和物联网关系非常紧密. 2.      Windo ...

  5. Poj2948Martian Mining(记忆化)

    链接 这题意好难懂 看得迷迷糊糊 想的也迷迷糊糊  后来睡了会突然想到了..不就是类似以前的矩阵操作 从右下角记忆化   大的由小的推来 dp[i][j] = max(dp[i-1][j]+s1,dp ...

  6. poj 1159 Palindrome(dp)

    题目:http://poj.org/problem?id=1159 #include<iostream> #include<cstring> #include<cstdi ...

  7. MySql命令的基本操作

    MySQL的基本命令: 登录:mysql  -h -u root -p password:*****; 例如:mysql -h127.0.0.1 -uroot -p 增加一个用户: grant all ...

  8. 记一次Sql优化过程

    这几天在写一个存储过程,反复优化了几次,从最开始的7分钟左右,优化到最后的几秒,并且这个过程中我的导师帮我指点了很多问题,这些指点都是非常宝贵的,独乐乐不如众乐乐,一起来分享这次的优化过程吧. 这个存 ...

  9. C#String与string大小写的区别

    string是c#中的类 String是.net Framework的类 用string需要通过再次编译,所以直接用String速度会更快··· string是关键字,而String不是··· str ...

  10. 打印web页面指定区域的三种方法

    本文和大家分享一下web页面实现指定区域打印功能的三种方法,一起来看下吧. 第一种方法:使用CSS 定义一 个.noprint的class,将不打印的内容放入这个class内. 代码如下: <s ...