BundleConfig的作用

2019-05-18 PM 06:05.来自互联网

(阅览)Read 1603

(调整字号)Size

16px 14px 12px

在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题。


首先,如果是使用的ASP.NET MVC4基本或者其他内容更丰富的模板,Bundle应该已经自动配置上了,因为本身会有jQuery和jQuery UI的引用,这两项引用会用到Bundle。


就简单说一下要点吧。


首先在项目的App_Start文件夹中,会有一个BundleConfig.cs文件,这里面写了所有需要Bundle的内容,可以自行设置。


其中的bundles.Add是在向网站的BundleTable中添加Bundle项,这里主要有ScriptBundle和StyleBundle,分别用来压缩脚本和样式表。用一个虚拟路径来初始化Bundle的实例,这个路径并不真实存在,然后在新Bundle的基础上Include项目中的文件进去。


 bundles.Add(new ScriptBundle("~/bundles/controllers").Include(
                        "~/asset/js/controllers/*.js"));
            bundles.Add(new ScriptBundle("~/bundles/services").Include(
                       "~/asset/js/services/*.js"));


然后对Bundle的注册是在项目根下的Global.asax文件中,这个文件中的Application_Start是网站程序的开始,里面注册了网站各种初始化的内容,其中就包括对BundleTable的Bundle添加。


BundleConfig.RegisterBundles(BundleTable.Bundles);


有一个地方主要注意,在Web.config中,当compilation编译的debug属性设为true时,表示项目处于调试模式,这时Bundle是不会将文件进行打包压缩的,页面中引用的js和css会分散原样的展示在html中,这样做是为了调试时查找问题方便,最终部署运行时,将debug设为false就可以看到js和css被打包和压缩了。


<system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>



0371/8622 0001

weekdays :   -am. 09:00-11:30
-pm.14:00-18:30 Open Hours

中国郑州 郑东新区金水东路与中兴路交汇处楷林IFC /A座 -17F-1713

Room1713 Building A,Kineer IFC,JinShui East Rd.
Zhengdong New Area,Henan,China