首页 > 代码库 > mvc4开篇之BundleConfig(1)
mvc4开篇之BundleConfig(1)
新建一个mvc4默认项目,会看到以下目录
打开App_start 里面BundleConfig.cs文件
你会看到这么一段话:
有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725
我现在讲的东西跟上面网址所说大同小异,不同网址里面是英文版
我这里讲的一些简单点
Bundling 这个英文从字面意思来说是:捆绑意思。。。
从程序层面来说:就是将所有文件捆绑在一起,然后压缩成一个文件
Demo就不使用官方,我手动建一个,估计大家会看明白点
1、在BundleConfig.cs加入以下2段话
bundles.Add(new StyleBundle("~/test/style").Include( "~/Content/a.css", "~/Content/b.css"));
注意:~/test/style这个可以理解虚拟文件夹,实际上是不存在,但它里面包括2个文件
~/Content/a.css 和 ~/Content/b.css
2、 在a.css加入以下内容,没有实际意义,为了测试
.a_test_style {
font-size:12px;
}
在b.css加入以下内容,没有实际意义,为了测试
.a_test_style {
font-size:12px;
}
3、在Home文件夹增加Index视图,当然对于controller也要增加 index()方法
参考一下官方调用例子 site.master里面
<%: Styles.Render("~/Content/css") %>
<%: Scripts.Render("~/bundles/modernizr") %>
<%: Styles.Render("~/Content/themes/base/css") %>
测试页面代码很简单
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %><!DOCTYPE html><html><head runat="server"> <meta name="viewport" content="width=device-width" /> <title>Test</title> <%:Styles.Render("~/test/style") %></head><body> <div> <p>有钱就是任性</p> </div></body></html>
调用:<%:Styles.Render("~/test/style") %>
4、生成 运行,看到以下结果
看到2条请求(google浏览器 F12)
当然 这个效果不是我最终所要的..
5、这就要我们合并文件,有2个方法
1、在配置文件Config<compilation debug="true" targetFramework="4.0" /> 将debug改为false
2、在BundleConfig.cs加上这段话 BundleTable.EnableOptimizations = true;
将config里面debug=false改一下,运行浏览器试试效果
看到只有一个请求,这是否就是我们所要的的呢?
F12打开谷歌开发工具,response看到 a.css b.css里面文件合并在一起
6、这样子做好处:减少http请求,缩短响应时间,提高网页速度,起到优化网站的作用。当然好处不止这些……
mvc4开篇之BundleConfig(1)