本文参考:http://www.cnblogs.com/willick/p/3438272.html

1、捆绑(Bundle),一个在 View 和 Layout 中用于组织优化浏览器请求的 CSS 和 JavaScript 文件的技术。

2、当我们创建一个MVC工程时,VS在Scripts文件夹下默认引入了以下js:

  • jquery-1.8.2.js,这个就不用解释了。
  • jquery-ui-1.8.24.js,在jQuery 基础上的一套界面工具,包括了网页上常见的很多插件和动画特效。
  • jquery.validate.js,用于验证用户在表单内input元素输入的数据。
  • knockout-2.2.0.js,是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化。
  • modernizr-2.6.2.js,一个开源的JS库,它使得那些基于访客浏览器的不同(指对新标准支持性的差异)而开发不同级别体验的设计师的工作变得更为简单。它使得设计师可以在支持HTML5和CSS3的浏览器中充分利用HTML5和CSS3的特性进行开发,同时又不会牺牲其他不支持这些新技术的浏览器的控制。
  • jquery.unobtrusive-ajax.js,MVC 框架中使用 Unobtrusive Ajax 的库。
  • jquery.validate.unobtrusive.js,基于 jquery.unobtrusive-ajax.js。
  • _references.js,它的作用是通过下面这种方式放入该文件中的JS文件可以被VS智能感知:
/// <reference path="jquery-1.7.1.js" />
/// <reference path="jquery-ui-1.8.20.js" />
/// <reference path="jquery.validate.js" />
/// <reference path="jquery.validate.unobtrusive.js" />
/// <reference path="knockout-2.1.0.debug.js" />
/// <reference path="modernizr-2.5.3.js" />

2、“捆绑”作用是把一类脚本或样式文件捆绑在一起,在需要用的时候调用一句代码就行,极大地方便了脚本和样式文件的管理;而且可以把脚本的普通和 min 两个版本都捆绑起来,MVC也会根据是否为Debug模式智能地选择脚本文件的版本。

3、使用Bundle的方便之一:可以在 /App_Start/BundleConfig.cs 中通过注册来统一管理脚本和样式文件。

public class BundleConfig {//RegisterBundles 参数对象的 Add 方法添加,该方法的参数需要一个ScriptBundle 类 或 StyleBundle 类的实例对象。    //脚本文件用的是 ScriptBundle 类,样式文件用的是 StyleBundle 类,它们的构造参数代表着捆绑在一起的文件的引用。     //Include 方法用于包含具体要捆绑的文件。其中的 {version} 是文件版本的占位符,MVC会在相应的目录下定位到最新的一个版本文件。public static void RegisterBundles(BundleCollection bundles) {bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/*.css"));bundles.Add(new ScriptBundle("~/bundles/clientfeaturesscripts").Include("~/Scripts/jquery-{version}.js","~/Scripts/jquery.validate.js","~/Scripts/jquery.validate.unobtrusive.js","~/Scripts/jquery.unobtrusive-ajax.js"));}
}

方便之二:不用引入一大坨js、css文件,而是通过下列优雅的方式进行:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>@ViewBag.Title</title>@Styles.Render("~/Content/css")
</head>
<body>@Scripts.Render("~/bundles/clientfeaturesscripts")@RenderBody()
</body>
</html>

方便之三:减少带宽并使捆绑请求的链接减少。在发布模式下,响应客户端请求时,MVC整合并最小化了JavaScript文件和样式文件,并使得一个捆绑中的内容在一个请求中加载。

转载于:https://www.cnblogs.com/wangwust/p/6393038.html

【ASP.NET MVC 学习笔记】- 18 Bundle(捆绑)相关推荐

  1. 【ASP.NET MVC 学习笔记】- 07 使用 Entity Framework

    本文参考:http://www.cnblogs.com/willick/p/3304534.html 1.ORM(Object Relation Mapping)工具,是为了解决"关系数据库 ...

  2. 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject

    本文参考:http://www.cnblogs.com/willick/p/3299077.html 1.在ASP.NET MVC中一个客户端请求是在特定的Controller的Action中处理的. ...

  3. 【ASP.NET MVC 学习笔记】- 09 Area的使用

    本文参考:http://www.cnblogs.com/willick/p/3331519.html 1.ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,这对于大的工程非常有用, ...

  4. 【ASP.NET MVC 学习笔记】- 16 Model Binding(模型绑定)

    本文参考:http://www.cnblogs.com/willick/p/3424188.html. 1.Model Binding是Http请求和Action方法之间的桥梁,是MVC框架根据Htt ...

  5. 【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)

    本文参考:http://www.cnblogs.com/willick/p/3331521.html 1.继承IController接口,示例代码将当前请求的Controller和Action打印到浏 ...

  6. Spring MVC 学习笔记 对locale和theme的支持

    Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 ...

  7. .NET MVC 学习笔记(一)— 新建MVC工程

    一..NET MVC 学习笔记(一)-- 新建MVC工程 接触MVC有段时间了,一直想找机会整理一下,可是限于文笔太差,所以一直迟迟羞于下手,想到最近做过的MVC项目也有一些了,花点时间整理一下方便以 ...

  8. ASP.NET MVC学习之路由篇(2)

    ASP.NET MVC学习之路由篇(2) 原文:ASP.NET MVC学习之路由篇(2) 继ASP.NET MVC学习之路由篇(1)后继续学习. 7.解决与物理路径的冲突 当发送一个请求至ASP.NE ...

  9. ASP.NET MVC学习资料 新增几个开源项目

    ASP.NET MVC学习资料 新增几个开源项目 ASP.NET MVC MSDN API:  System.Web.Mvc Namespace (暂无中文版):  http://msdn.micro ...

  10. ASP.NET MVC学习之控制器篇

    一.前言 许久之后终于可以继续我的ASP.NET MVC连载了,之前我们全面的讲述了路由相关的知识,下面我们将开始控制器和动作的讲解. ASP.NET MVC学习之路由篇幅(1) ASP.NET MV ...

最新文章

  1. unity, monoDevelop ide 代码提示不起作用的解决方法
  2. dropbear环境搭建
  3. 2017-2018-1 20155207 《信息安全系统设计基础》第四周学习总结
  4. git推送本地分支到远程分支
  5. [react] 举例说明React的插槽有哪些运用场景
  6. 金叉成功率_一个非常强烈的买卖信号:三金叉见顶,三死叉见底,短短10字,但是成功率却远超“金叉买,死叉卖”...
  7. java 文件下载 jsp文件_jsp文件 Java实现文件上传与下载
  8. 棋盘游戏(信息学奥赛一本通-T1451)
  9. LeetCode题 - 1 两数之和
  10. Python基本语法[二],python入门到精通[四] (转)
  11. 【OJ2726】集合问题,堆
  12. android 蓝牙与单片机通信原理图,手机蓝牙与HC-06蓝牙模块控制单片机程序加APP...
  13. php input file 上传文件类型,php轻松实现文件上传功能
  14. Python中Youki使用索引快速为数组或矩阵赋值的技巧
  15. python中run函数作用_python3多线程中如何改写run()函数?
  16. JavaScipt屏蔽浏览器右上角“最小化,最大化,关闭”
  17. Google Calendar Sync_ 把 Microsoft Outlook 同步到 G...
  18. 数学建模大赛准备方法及资源分享
  19. 6款沙发背景墙装饰画 总有一幅你喜欢的
  20. 【历史上的今天】1 月 19 日:苹果推出 Lisa;RIM 发布第一款黑莓手机;计算机先驱诞生日

热门文章

  1. Redis详解(七)——Redis主从同步高可用架构
  2. Linux通过源码编译安装程序;yum和源码安转软件包的区别
  3. 我的电脑已经禁ping,应该如何启用该功能?
  4. 用Windows Live Writer写51cto博客
  5. 智能安全实验室-杀马(Defendio) 2.5.0.430 :自定义上报威胁
  6. 项目组【网站】的项目
  7. Linux环境下gcc静态编译/usr/bin/ld: cannot find -lc错误原因及解决方法。
  8. php curl exec 返回值,php curl_exec函数返回false的解决方法
  9. linux系统编程 -- 僵尸进程 孤儿进程
  10. 将system.out.println的输出,输出调用类等其他参数的方法