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. HashTable、HashMap、LinkedHashMap、TreeMap的比较

    HashTable:继承自Dictionary类,实现了Map接口,不允许键或值为空,线程同步: HashMap:继承自AbstractMap类,实现了Map接口,允许键或值为空,线程不同步: Lin ...

  2. WIFI(1)WIFI直连 + socket 可以用来实现类似蓝牙传输数据的功能

    WIFI 直连简介 从Android4.0(API Level=14)开始,允许通过Wi-Fi模块在两个移动设备之间建立直接连接(这种技术称为Wi-Fi Direct),这种连接不需要无线路由作为中介 ...

  3. poj 2533 Longest Ordered Subsequence(dp)

    题目:http://poj.org/problem?id=2533 题意:最长上升子序列.... 以前做过,课本上的思想 #include<iostream> #include<cs ...

  4. asp.net SqlParameter关于Like的传参数无效问题

    按常规的思路,我们会这样写 复制代码代码如下: String searchName ="Sam"; String strSql = "select * FROM Tabl ...

  5. HDU 4571 Travel in time ★(2013 ACM/ICPC长沙邀请赛)

    [题意]给定N个点,每个点有一个停留所需的时间Ci,和停留能够获得的满意度Si,有M条边,每条边代表着两个点走动所需的时间ti,现在问在规定的T时间内从指定的一点S到E能够获得的最大的满意度是多少?要 ...

  6. ☀【document / location】

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  7. CI的知识点

    1. 超级对象中$this->uri 获取pathinfo中的值,$this->uri->segment(n)中的n表示第几个参数 如:/welcome/index/1  使用$th ...

  8. UVA 10585 Center of symmetry

    题意:给出一个点集,问这个集合有没有中心点使点集对称,这个点可以是点集中的点也可以不是点集的点. 解法:一开始我枚举每两个点连线的中点……结果T了orz当时也不知道怎么想的…… 将点按横坐标排序,如果 ...

  9. 扩展类加载器-------改变JAVA的父优先类加载顺序

    java的类加载机制默认情况下是采用委托模型:当加载某个类时JVM会首先尝试用当前类加载器的父类加载器加载该类,若父类加载器加载不到再由当前类加载器来加载,因此这种模型又叫做“父优先”模型. 但是在实 ...

  10. mysql数据库基础的简单操作指南

    最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据 ...