ASP.NET 5中的ASP.NET Bundles跑到哪里去了?

(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)

众所周知,在ASP.NET MVC中很早就存在一个所谓的“bundling and minification”的特性,那么在ASP.NET 5中,这个特性跑哪里去了?待今天推荐的文章来分解。

在使用ASP.NET MVC4、5开发Web应用的时候,为了加速加载客户端的一些资源(比如js和css),需要对这些js和css进行打包和压缩来减少浏览器对服务器的请求次数。具体做法就是在App_Start文件夹的BundleConfig.cs中添加要打包压缩的内容,比如:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery-{version}.js"));

然后在视图文件(*.cshtml)中通过如下这样的代码来引用,ASP.NET MVC的引擎会自动在程序执行的时候打包压缩并引用一个内存中的虚拟地址:

@Scripts.Render("~/bundles/jquery")

然而,在ASP.NET 5中微软废弃了这个特性,这是因为一方面上述方法会导致浏览器访问的文件是运行时动态生成(然而这样的生成过程不是每次都需要且有时候生成过程还是会占用资源),另外一方面在ASP.NET 5中可以被其他类似的组件所代替。比如使用Gulp, npm和bower等。

具体做法是,在package.json文件中引入(就是直接手动编写)额外三个gulp扩展:gulp-concat, gulp-uglify和gulp-rename。VS会自动调用npm来安装这些扩展。

而后,在gulpfile.js中,添加打算打包压缩的任务脚本,最后在“Task Runner Explorer”中执行这个任务脚本。

那么还有一个问题就是,如何在开发的时候使用未打包压缩的js代码,而在生产环境下使用处理过的js文件呢。本文作者jeffrey fritz给出了一种解决办法,就是利用ASP.NET MVC 6的新特性TagHelper的环境配置,比如如下图:

更详细的做法,可“阅读原文”来查看。

原文地址:http://www.jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/

时间: 2024-10-10 12:34:56

ASP.NET 5中的ASP.NET Bundles跑到哪里去了?的相关文章

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也没什么大的差别. 在ASP.NET应用程序里使用ASP.NET AJAX访问WebService通常都是通过ScriptMananger引入WebService生成客户端代理的方法,同时也可以使用Microsoft Ajax Library来完成.本文将介绍在ASP.NET MVC中使用ASP.NE

转载 ASP.NET MVC中使用ASP.NET Identity - 新西兰程序员 - 博客园

转载原地址: http://blog.jobbole.com/90695/ 在之前的文章中,我为大家介绍了OWIN和Katana,有了对它们的基本了解后,才能更好的去学习ASP.NET Identity,因为它已经对OWIN 有了良好的集成. 在这篇文章中,我主要关注ASP.NET Identity的建立和使用,包括基础类的搭建和用户管理功能的实现-- http://myusermanagement.azurewebsites.net/Account/Login?ReturnUrl=%2F 点此

ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)

当你使用bundles.Add方法添加StyleBundle和ScriptBundle对象的时候一定要注意,StyleBundle和ScriptBundle的构造函数的参数virtualPath指定的虚拟路径一定不能是当前ASP.NET项目中真实存在的一个文件夹路径,否则当你把你的站点部署到IIS上后,会发现MVC页面上用@Styles.Render和@Scripts.Render生成的url路径会被IIS拒绝,IIS提示 禁止访问 403错误. 下面是有个老外遇到了相同的问题,在StackOv

ASP.NET MVC4中的App_start中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 MVC5中实现具有服务器端过滤、排序和分页的GridView

背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web 表单的功能.通过前文,我们已经了解到使用 jQuery 插件的数据表可以很容易地实现具有搜索.排序和分页等重要功能的表格. 前文中需要注意的是,所有通过插件实现的特性都是客户端的,这意味着所有的数据都首先在页面载入,然后由插件来处理客户端搜索.分页和排序的数据.如果数据表不是特别大,这么做是可以的:但是,如

【转】在ASP.NET MVC中,使用Bundle来打包压缩js和css

在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 这里仅简单记录下如何使用. 首先,如果是使用的ASP.NET MVC4基本或者其他内容更丰富的模板,B

在ASP.NET MVC中,使用Bundle来打包压缩js和css(转)

转自:http://www.cnblogs.com/xwgli/p/3296809.html 在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便查找问题. 具体优势可自行百度或参看官方介绍:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 这里仅简

在ASP.NET MVC中对手机号码的验证

在ASP.NET MVC中,可以使用RegularExpression特性来验证手机号码. public class Customer { [Required(ErrorMessage = "必填")] [Display(Name = "手机号")] [RegularExpression(@"^1[3458][0-9]{9}$", ErrorMessage = "手机号格式不正确")] public string PhoneN

ASP.NET MVC4中调用WEB API的四个方法

http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml [IT168技术]当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强大的服务.然而,越来越多的互联网应用,希望将服务只是通过HTTP发布出去,而不是使用复杂的SOAP协议.为了解决这个问题,ASP.NET WebAPI就出现了.