因为现在的项目JS引用很多,无意中看到了MVC4的Bundling,开始的时候感觉很不错,将所有的CSS,js文件压缩成一个文件处理,画面调用也很简单

于是,花了一个下午的时候研究了一下,并且通过各种情况进行测试

可是结果不尽如人意,其中有一个比较很让人抓狂的问题

经常做.NET的人都知道,UI画面会引用很多的插件,比如easyui,ext等等,而这些插件里面包含了很多图片引用,因为图片呢,就涉及到一个做WEB的常见难题:路径(当然,如果所有的CSS文件中图片路径都是使用的绝对路径或者项目绝对路径,那就没这个问题)

MVC4的Bundling本应该是一个很OK的功能,也是MVC4的亮点

但是累赘就是,被它压缩过的CSS里面的图片路径,原来的相对于CSS文件的引用路径会变为虚拟路径的相对路径

比如:我们在项目中定义Bundling的时候如下

bundles.Add(new ScriptBundle("~/Content/css/infocss").Include(
                        "~/Content/Skins/blue/Css/irameCss/style.css",
                        "~/Content/Css/BaseCss/infoform.css"
                        ));

其中,("~/Content/css/infocss")为虚拟路径,被压缩后的路径,则不是按照我们定义的包含的CSS文件的相对路径,而是变成了虚拟路径的相对路径,这个时候,我们必须对每个CSS文件考虑里面的使用的图片路径再设置虚拟路径。因为我一个画面总共只需要调用三个CSS文件,而且原本的路径不一,所以感觉如果进行修改,得不偿失

第二个问题,如果我的css文件或者JS文件本身设置了参数,比如query.artDialog.js?skin=blue,原本的设计是根据这里的SKIN参数,JS引用不同的CSS文件,如果使用Bundling,则只能分开调用。

其他还有一些小的问题,因为时间关系,我也没有进行继续测试,在看其他博主进行使用Bundling,好像提过,对于JS带.min的文件,Bundling不进行压缩,而且文件也不进行导入。只能直接在UI画面引用,而且就算改变了JS文件名称,将.min去掉,但是本身就是压缩文件,如果再进行压缩,会不会有什么问题呢?

mvc Bundling 学习记录的更多相关文章

  1. mvc Bundling 学习记录(一)

    参考博客:http://www.cnblogs.com/xwgli/p/3296809.html 这里要详细记录的是对于现有MVC项目进行Bundling功能 1  如果没有System.Web.Op ...

  2. ASP.Net Mvc 5 学习记录2015-9-9

    我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...

  3. MVC 菜鸟学习记录2

    自定义Html.Helper扩展方法 在Models文件夹下新建一个静态类,取名为:MyHtmlHelper.cs 将MyHtmlHelper设置为static,并写入以下的一个静态方法 public ...

  4. MVC 菜鸟学习记录1

    Asp.Net MVC 模式是一种表现模式.它将web应用程序分成三个主要组件即:    Model.View.Controller M:Model 主要是存储或者是处理数据的组件 Model其实是实 ...

  5. MVC+Ext.net零基础学习记录(五)

    继MVC+Ext.net零基础学习记录(四),在后面我在既有的项目上又添加了一个子项目,还用前面提到的方法,进行主项目中引用DLL,然后子项目中生成事件中使用mkdir 进行拷贝 发现一个下午就总是报 ...

  6. MVC+Ext.net零基础学习记录(四)

    在上一篇文章[MVC+Ext.net零基础学习记录(三)]中提到了利用MVC的Area可以做到项目分离,但是实际操作起来还是有很多问题的.比如,对于物理资源的访问,会报:没有相关资源 开始的时候,我在 ...

  7. 我的Spring Boot学习记录(二):Tomcat Server以及Spring MVC的上下文问题

    Spring Boot版本: 2.0.0.RELEASE 这里需要引入依赖 spring-boot-starter-web 这里有可能有个人的误解,请抱着怀疑态度看. 建议: 感觉自己也会被绕晕,所以 ...

  8. ASP.NET MVC 5 学习教程:通过控制器访问模型的数据

    原文 ASP.NET MVC 5 学习教程:通过控制器访问模型的数据 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连 ...

  9. ASP.NET MVC 5 学习教程:创建连接字符串

    原文 ASP.NET MVC 5 学习教程:创建连接字符串 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...

随机推荐

  1. Maven项目如何将自定义文件添加到META-INF目录下

    Maven项目如何将自定义文件添加到META-INF目录下 学习了:https://blog.csdn.net/yangjiegreat/article/details/78698655 <bu ...

  2. AngularJS的稍复杂form验证

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsSoccerFormCheck.rar 代码: <!DOCTYPE HTM ...

  3. grep 精确匹配

    使用grep实现精确过滤的五种方法 (1)当被过滤的内容占据一行时 [root@MySQL scripts]# cat oldboy.log        200 0200 2000 [root@My ...

  4. zepto jquery和zepto的区别?

    jQuery 由于强大的生命力基本上是一个事实标准,所以大部分工具 lib 在 DOM 操作.动画等功能上或多或少都会是 jQuery-like 的. Zepto 的 API 就是完全兼容 jQuer ...

  5. 回到顶部totop

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. ThinkPHP中的模型命名

    当我们创建一个UserModel类的时候,其实已经遵循了系统的约定.ThinkPHP要求数据库的表名和模型类的命名遵循一定的规范,首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的 ...

  7. 基于faro SDK 读取fls原始文件

    #define _SCL_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include <iostream> //#include ...

  8. Android 虚化图片的方法

    Android 虚化图片 模糊图片 图片毛玻璃效果. 效果如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaDNjNGxlbm92bw==/font/ ...

  9. 如何在IntelliJ IDEA在线查看源码的API文档

    https://blog.csdn.net/IFollowRivers/article/details/81604463

  10. mapreduce代码实现入门

    mapreduce代码主要包括三个类,map类.reduce类以及测试类! 以wordcount为例, map类为: static class WordMapper extends Mapper< ...