ASP.NET MVC 4 的JS/CSS打包压缩功能-------过滤文件

今天在使用MVC4打包压缩功能@Scripts.Render("~/bundles/jquery") 的时候产生了一些疑惑,问什么在App_Start文件夹下BundleConfig.cs文件内

[csharp] view plaincopyprint?

  1. bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
  2. "~/Scripts/jquery-{version}.js",
  3. "~/Scripts/jquery.unobtrusive-ajax.js"
  4. ));

这样写可以,但是

[csharp] view plaincopyprint?

  1. bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
  2. "~/Scripts/jquery-{version}.js",
  3. "~/Scripts/jquery.unobtrusive-ajax.min.js"
  4. ));

这样写却不可以,我的目录里明明有

[csharp] view plaincopyprint?

  1. "~/Scripts/jquery.unobtrusive-ajax.min.js"

这个文件啊

通过调试跟踪发现,MVC内部已经对“.min.js”文件做了过滤

通过反编译这个DLL文件

可以看到下面反编译后的代码:

 

[csharp] view plaincopyprint?

  1. public static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
  2. {
  3. if (ignoreList == null)
  4. {
  5. throw new ArgumentNullException("ignoreList");
  6. }
  7. ignoreList.Ignore("*.intellisense.js");
  8. ignoreList.Ignore("*-vsdoc.js");
  9. ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
  10. ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled);
  11. ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled);
  12. }

由此我们可以知道MVC默认帮我们过滤了后缀名为 .intellisense.js、-vsdoc.js、.debug.js、.min.js、.min.css的文件,这也就是我们引用.min.js文件不起作用的原因了。

时间: 2024-10-06 08:53:20

ASP.NET MVC 4 的JS/CSS打包压缩功能-------过滤文件的相关文章

ASP.NET MVC 4 RC的JS/CSS打包压缩功能 Scripts.Render和Styles.Render

打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS文件案中空白.批注及修改JavaScript内部函数.变量名称的压缩手法,能有效缩小文件案体积,提高传输效率,提供使用者更流畅的浏览体验. 在ASP.NET MVC 4中可以使用BundleTable捆绑多个css文件和js文件,以提高网络加载速度和页面解析速度.更为重要的是通过捆绑可以解决IE浏览

iis 发布asp.net mvc 网站时候js css 压缩问题,图片不加载问题

一.JS CSS 自动压缩问题 默认情况下mvc这个框架会把css,js文件压缩成一个js或者css文件,一会发现只有一个<link href="/Content/css?v=ji3nO1pdg6VLv3CVUWntxgZNf1zRciWDbm4YfW-y0RI1" rel="stylesheet"/>  和一个<script src="/bundles/modernizr?v=qVODBytEBVVePTNtSFXgRX0NCEjh9U

ASP.NET MVC 4使用Bundle的打包压缩JS/CSS

打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS文件案中空白.批注及修改JavaScript内部函数.变量名称的压缩手法,能有效缩小文件案体积,提高传输效率,提供使用者更流畅的浏览体验. 在ASP.NET MVC 4中可以使用BundleTable捆绑多个css文件和js文件,以提高网络加载速度和页面解析速度.更为重要的是通过捆绑可以解决IE浏览

在 Asp.NET MVC 中使用 SignalR 实现推送功能 [转]

在 Asp.NET MVC 中使用 SignalR 实现推送功能 罗朝辉 ( http://blog.csdn.net/kesalin ) CC许可,转载请注明出处 一,简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息. 可访问其官方网站:https://github.com/SignalR/ 获取更多资讯. 二,实现机制

IIS7.5 不能加载外部引用的第三方JS,CSS,img等一系列静态文件

做了一个mvc的项目,今天放iis上跑样式和功能进行调试,由于之前机子是新装的,所以IIS没有装.装iis是小事几分钟,但测试的过程中,一直是只能显示本页面的html标签和写在本页面的css和js.外部的第三方引用都不能用,实在纳闷.iis重装了几次,最后发现有个iis默认值处有问. 如下-->在打开或关闭window功能中的Internet信息服务里的万维网服务=>常见HTTP功能=>静态内容  .注意,这里默认是不勾选的. IIS7.5 不能加载外部引用的第三方JS,CSS,img等

使用ASP.NET MVC局部视图避免JS拼接HTML,编写易于维护的HTML页面

以前使用ASP.NET WebForm开发时,喜欢使用Repeater控件嵌套的方式开发前台页面,这样就不用JS拼接HTML或者后台拼接HTML了,写出的HTML页面美观.简捷.易于维护,由于不用JS拼接HTML,所以JS写的也很少. 最近使用ASP.NET MVC开发,前台页面的功能比较复杂,每次刷新整个页面的话体验会很差,所以通过JS控制页面元素,实现局部刷新.刚开始使用的方法是通过JS在前台拼接HTML,结果JS写的很长,要命的事,每增加一个新功能,都要拼接很长的HTML,结果页面的JS越

Asp.net MVC在View里动态捆绑压缩引用的js

前言 Asp.net MVC 4以上版本多了BundleConfig.RegisterBundles方法,可以把要捆绑的脚本或样式进行捆绑压缩,以减少客户端的请求次数从而提高了客户端的访问速度. 问题 但世上懒人的数量还是很多,我也是一个,觉得这个方法还不够方便.在实际中,一些小的页面或独立页面,开了一些开源的js库之后,js文件比较多,而且每个页面引用的js又不太一样,如果能不在BundleConfig描述如何捆绑,像传统一样把js拉过来就能自动达到捆绑后的效果,是懒人多想要的结果.正是朝着这

ASP.NET MVC API与JS进行POST请求时传递参数 -CHPowerljp原创

在API前添加    [HttpPost] 表示只允许POST方式请求 [HttpPost] public IHttpActionResult Get_BIGDATA([FromBody]Datas Datas) { try { return Json(Datas.rid); } catch (Exception e) { return Json("-1"); } } 要先通过POST方式读取到参数,需要在添加[FromBody]表示从key value键值对中读取参数 Datas 表

使用r.js来打包模块化的javascript文件

前面的话 r.js(下载)是requireJS的优化(Optimizer)工具,可以实现前端文件的压缩与合并,在requireJS异步按需加载的基础上进一步提供前端优化,减小前端文件大小.减少对服务器的文件请求.本文将详细介绍r.js 简单打包 [项目结构] 以一个简单的例子来说明r.js的使用.该项目名称为'demo',在js目录下包含s1.js和s2.js两个文件,使用requirejs进行模块化,内容如下 //s1.js define(function (){ return 1; }) /