ASP .NET MVC - BundleCollection

 

首先我们需要在 Application_Start() (Global.cs 文件下)

来注册 BundleConfig 以获得 Bundle 的支持

protected void Application_Start()
{
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
}

 

 

在 App_Start 目录下有个 BundleConfig.cs 文件

其中包含了一个 注册捆绑文件的函数 (RegisterBundles)

其作用是用来将前端的 JavaScript 和 CSS 做捆绑

只用一条引用命令就可以将一批 Js 和 Css 文件引用到页面上

 

其中

bundles.Add(new ScriptBundle("~/bundles/my").Include(
                      "~/Scripts/*.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/*.css"));

 

SciprtBundle 和 StyleBundle 分别是 JS 和 CSS 捆绑的对应类

"~/bundles/my" 是我们自己指定的一个捆绑路径, 相当于一个指定名称, 不需要实际存在的路径

Include 下的 文件都是实际的 Js 和 Css 存放的相对路径, 可以使用 *, {version} 等通配符来模糊匹配一类的文件

 

在之类注册完 Bundle 之后 只要在前端页面上引用

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/my")

就可以达到引用整批 Js 和 Css 文件的目的

这样的好处是.

即使以后在某个 Js,Css 目录下有新增什么同类型的文件的话, 不需要更新引用就可以使用新的文件

简化了更新 Js Css 文件的操作

 

----------------------------------------------------

另外 MVC4 之后微软提供了 自动压缩 JS 和 CSS 文件的办法

只要在 Application_Start() 的方法中使用 

BundleTable.EnableOptimizations = true; 即可

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    BundleTable.EnableOptimizations = true;
}

这样一来 我们前端运行出来的页面上 打开源代码工具看到的就是

 

这样 Js 文件和 Css 文件就自动压缩了

 

posted @ 2017-02-13 10:51  `Laimic  阅读(337)  评论(0)    收藏  举报