ASP.NET MVC4中的App_start中BundleConfig的介绍使用

摘要:
首先,如果您使用ASP。NET MVC4基本模板或其他具有更多内容的模板,捆绑包应该已自动配置,因为将有对jQuery和jQuery UI的引用,这些引用将使用捆绑包============使用捆绑包的关键是在ASP.NET中使用捆绑包表注册捆绑包。如果要在ASP。NET WebForm,您需要选择。NET Framework 4.5创建新项目时。最好使用模板网站创建一个新网站,这样您就可以直接看到Bundles。ASP。NET MVC4_启动时BundleConfig的介绍和使用

在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文件:

image

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

image

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

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

image

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

BundleTable.EnableOptimizations = true;

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

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

image

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

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

image

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

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

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

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

免责声明:文章转载自《ASP.NET MVC4中的App_start中BundleConfig的介绍使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spark读写hbase性能对比HTTP协议安全头部X-Content-Type-Options引入的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Angular 学习笔记 (version 6 小笔记)

1. lazyload 的 path 变成相对路径了, 不过如果你用 ng update 的话, 依然可以不需要修改, cli config 好像能调支持绝对路径的写法. const routes: Routes =[ { path: '', loadChildren: './home/home.module#HomeModule'}, ]; 2. 新...

Redmine 项目管理工具----完全攻略

摘要: 此篇博客涉及 安装,插件修改,插件安装,代码显示,中文乱码,SVN配置等内容,几乎覆盖所有redmine基本功能。 本机环境: Redmine 版本: 3.2.0 本机环境: win7 64位 (32位没有影响) SVN:最新的都行,不影响。 Code review 0.7.0 支持redmine 3.0.0 (本机安装的redmine 也支...

冗余代码都走开——前端模块打包利器 Rollup.js 入门

之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化。 殊不知在 webpack 1.X 版本是无法利用该特性来避免引入冗余模块代码的,导致打出来的 bundle 文件大小难免略有臃肿。 今天则向大家介绍一个当红炸子鸡——Rollup.js,通过它可以让你的 bundle 最...

ios 加载.bundle文件里的图片

这个是加载bundle里面的的图片 + (UIImage *)imageNamed:(NSString *)name ofBundle:(NSString *)bundleName { UIImage *image = nil; NSString *image_name = [NSString stringWithFormat:@"%@.png", nam...

三层架构+存储过程实现分页

首先在项目下加入BLL,DAL,DataAccess,MODEL类库 -------前台界面--------- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="原始刷新分页.aspx.cs" Inherits="分页.原始刷新分页" %> <!DOCTYPE html P...

Android 修改TabLayout底部导航条Indicator的长短

关于Tablayout,使用的应该很频繁了,但是底部导航条长短是固定死的,需要自己来改动长短,找了半天没找着方法,看了下官方建议,可以通过映射来修改自己想要的长短,其实也就几行代码的问题,看代码: public static void setIndicator(Context context, TabLayout tabs, int leftDip,...