在BundleConfig.cs中,指定CSS和JS,主要用来压缩JS和CSS

 

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

具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

这里仅简单记录下如何使用。

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

就简单说一下要点吧。

首先在项目的App_Start文件夹中,会有一个BundleConfig.cs文件:

这里面写了所有需要Bundle的内容,可以自行设置:

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

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

默认情况下,Bundle是会对js和css进行压缩打包的,不过有一个属性可以显式的说明是否需要打包压缩:

BundleTable.EnableOptimizations = true;

如果将其设为false,那么就会和下面说的debug=true时的情况相同了。

在使用时,在相应位置调用ScriptRender和StyleRender的Render方法:

最终用户页面即可达到效果打包压缩效果。

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

最终部署运行时,将debug设为false就可以看到js和css被打包和压缩了。

=============

使用Bundle的关键在于要向ASP.NET中的BundleTable注册Bundle。

如果要在ASP.NET WebForm中使用Bundle,需要在新建项目时选择.NET Framework 4.5,最好使用模板网站新建,这样就可以直接看到Bundle了。ASP.NET MVC4中的App_start中BundleConfig的介绍使用

最新文章

  1. JS中generater和箭头函数
  2. php读取大文件
  3. stunnel+CCProxy,搭建加密代理
  4. C++ map使用(基于hashtable)
  5. 4.13-4.17c语言学习
  6. ASP.NET四则运算--策略模式
  7. Linux下如何保持gnome-terminal窗口执行命令后停留而不立刻关闭(gnome-terminal -x)
  8. shell脚本应用(5)--实用脚本片段
  9. Spring Http Invoker
  10. Hadoop源代码导入Eclipse
  11. iphone6 plus有什么办法
  12. CSS 去掉点li 的点
  13. 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)
  14. Hibernate框架学习之注解配置关系映射
  15. Django REST framework+Vue 打造生鲜超市(五)
  16. Data Block -- Uncompressed
  17. vscode开发c#
  18. C#语言不常用语法笔记
  19. Linux mmc framework2:基本组件之queue
  20. Scala:First Steps in Scala

热门文章

  1. Direct2D教程IV——笔刷(Brush)对象
  2. 关于Promise的一些个人理解jQuery的deferred
  3. easyui form load 数据表单有下拉框
  4. javascript奇技淫巧之位运算符
  5. ThinkPHP3.2多域名 Virtual .htaccess 匹配 RewriteCond %{HTTP_HOST}
  6. C#.NET常见问题(FAQ)-如何把文本复制粘贴到文本框的光标位置
  7. C#.NET常见问题(FAQ)-如何把定义存放类实例的数组
  8. keytab生成不了
  9. 【树莓派】树莓派上刷android系统
  10. Docker镜像保存save、加载load