asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config

从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了 【App_Start】文件夹下,而Global.asax只负责初始化。其中的BundleConfig类就有个很牛X的功能:合并与压缩。想到以前做 ASP.NET的时候要通过工具压缩,手动合并,很麻烦。通过BundleConfig可以大大的提高工作效率和项目性能。

一、基本的使用

1.1、Global.asax文件的初始化


1

2

3

4

protected void Application_Start()

      {

          RouteConfig.RegisterRoutes(RouteTable.Routes);

      }

1.2、BundleConfig 绑定压缩文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class BundleConfig

{

    // 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725

    public static void RegisterBundles(BundleCollection bundles)

    {

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(   

            "~/Content/Scripts/jquery-{version}.js"

           ));

        bundles.Add(new ScriptBundle("~/Content/Scripts/toojs").Include(

                  "~/Content/Scripts/jquery.cookie.js",

                 "~/Content/Scripts/footer.js"

             ));

1.3、视图中的显示


1

2

3

@Styles.Render("~/Content/Css/Common"//单个样式的绑定

@Scripts.Render("~/bundles/jquery","~/Content/Scripts/toojs","~/Content/Sctipts/bootstraptJs"//多个JS的绑定

1.4、web.config 的配置


1

2

<system.web>

    <compilation debug="true" targetFramework="4.5"/>


1

debug="false"的时候就启用的压缩

二、效果说明 

当启用压缩之后,打开firebug你会看到

多个文件在一起会被合并,文件格式去掉了,形成的压缩,提高了文件的加载时间。

我觉得还有一个很智能的好处:支持正则匹配文件

*\{version}  两个是很好的匹配,在实际项目中,在样式迭代开发时,stlye.1.0.css,stlye.1.1.css,stlye.1.2.css,stlye.1.3.css……模式累加,路径只写 ~/Content/stlye.*.css 就可以了。

在JS开发的时候很多时候改了BUG,JS有版本更 新:Script.1.0.js,Script.1.0.min.js,Script.1.1.js,Script.1.1.min.js  会使用到最新版本,用{version} debug模式下会取最新的文件,发布的时候会取最新的min

三、注意事项:


1

刚开始的时候虚拟路径的命名有就很奇怪: ~/bundles/jquery。如下:


1

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(


1

bundles.Add(new ScriptBundle("~/Content/Scripts/toojs").Include(<br><br>


1

我开始以为:~/Content/Scripts 是文件的文件夹地址,后面随便命名,但~/bundles 又是什么?我们跟踪的时候发现:


1

在bundles 注册之前就有了值,原来系统已经定义好了7个路径标识,应该是默认常用的吧。这个地方坑了我好长时间了,百度也没人说~

好了,就这么多了,这节没有讲代码,就是说了下捆绑的新功能 。

时间: 2024-10-22 21:42:21

asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config的相关文章

ASP.NET MVC下Bundle的使用

ASP.NET MVC中Bundle是用于打包捆绑资源的(一般是css和js),它是在全局文件Global.asax.cs中注册Bundle,而注册的具体实现默认是在App_Start文件夹的BundleConfig.cs中 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); Filt

ASP.NET MVC使用Bundle来打包压缩js和css

Bundle它是用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 1.BundleConfig配置Bundle public class BundleConfig { // 有关绑定的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundl

ASP.NET MVC 3 网站优化总结(六)压缩 HTML

压缩 html 可以去除代码中无用的空格等,这样可提高网站的加载速度并节省带宽.今天就让我们看看在 ASP.NET MVC 3 怎么实现 html 压缩,我们可通过实现 ActionFilter 来完成 html 的压缩. 其实我们在 ASP.NET MVC 3 网站优化总结(一) 使用 Gzip 压缩这篇文章中使用的就是这种方法,主要看看实现的 FilterAttribute 类: public class WhitespaceFilterAttribute : ActionFilterAtt

asp.net权限控制配置web.config

项目下 有三个文件夹 A,B,C 验正方式是 Forms 验正 我要设置他们的访问权限为, A,匿名可访问 B,普通用户授权后才能访问 C,只允许管理员访问 <configuration> <location path= "A "> <system.web> <authorization> <allow users= "* "/> </authorization> </system.web

ASP.NET MVC 4 的JS/CSS打包压缩功能-------过滤文件

今天在使用MVC4打包压缩功能@Scripts.Render("~/bundles/jquery") 的时候产生了一些疑惑,问什么在App_Start文件夹下BundleConfig.cs文件内 [csharp] view plaincopyprint? bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js", "

Asp.Net配置Web.config连接SqlServer数据库

前言  今天下午帮同学解决了bug,一个小问题耽误了lz接近一下午的时间.写篇博客记录下在这个过程中遇到的问题. 解决过程  step1:在连接数据库的时候,提示连接失败,这种问题有80%的概率是因为web.config中连接字符串写错了.首先web.config连接Sqlserver数据库配置有两种验证方式  Windows身份验证 string connectionstring ="Server=服务器名;Integrated Security=SSPI;database=LibraryMi

CRUD Operations In ASP.NET MVC 5 Using ADO.NET

Background After awesome response of an published by me in the year 2013: Insert, Update, Delete In GridView Using ASP.Net C#. It now has more than 140 K views, therefore to help beginners I decided to rewrite the article i with stepbystep approach u

ASP.NET MVC轻教程 Step By Step 12——客户端验证

前面两节使用的两种数据验证方法都是在服务器端进行的,也就是提交了表单,数据回传给服务器才能验证.这样会带来两个问题,一是用户体验不好,用户提交了表单之后才知道存在问题:二是会给服务器带来额外的压力.我们可以使用客户端验证来解决这两个问题. 客户端验证一般使用Javascript脚本,JQuery.validate就是一个不错的JQuery验证组件,很多项目都会用它来实现客户端验证. Step 1. 添加脚本 ASP.NET MVC对JQuery有很好的支持,实际上后者已经集成在前者里面了,新建一

ASP.NET MVC 3 常用

http://blog.csdn.net/churujianghu/article/details/7297358 1.ASP.NET MVC 3 如何去除默认验证 这个默认验证是在web.config配置文件中设置的    <add key="ClientValidationEnabled" value="true"/>设置为false就行了,    这个是去掉所有model的默认验证,然后你可以在model中加上自己的验证,这样哪些属性需要验证,哪些