【转】asp.net mvc css/js压缩合并 --- combres
转自:http://www.cnblogs.com/zxktxj/archive/2012/05/30/2526246.html
NuGet 网站:http://nuget.codeplex.com/releases/view/64974
Combres 英文介绍:http://www.codeproject.com/KB/aspnet/combres2.aspx
mvc3的设置和使用过程,模板引擎是razor的。
使用:
(1)直接使用vs2010的 NuGet 功能
(2)新建mvc3项目,打开vs2010,视图--->其他窗口--->Package Manager Console(需要系统程序包 Windows PowerShell 2.0,没有请安装)
(3)输入 get-package -remote -filter Combres.Mvc ,回车,显示如下:
可以看到comberes.mvc 的版本,这里我安装的是 2.2.2.0 版本 输入 install-package -id Combres.Mvc -version 2.2.2.0 , 回车自动安装combres.mvc
(4)安装完成,会自动生成App_Data/combres.xml,这个就是设置压缩/合并的文件配置。这个是我的配置
- <??>
- <combrescombres ='urn:combres'>
- <resourceSetsurl="~/combres.axd"defaultDuration="30"
- defaultVersion="auto"
- defaultDebugEnabled="auto">
- <resourceSetname="siteCss"type="css">
- <resourcepath="~/styles/site.css"/>
- <resourcepath="~/styles/jquery-ui-1.7.2.custom.css"/>
- </resourceSet>
- <resourceSetname="siteJs"type="js">
- <resourcepath="~/scripts/jquery-1.4.4.js"/>
- <resourcepath="~/scripts/jquery-ui-1.7.2.custom.min.js"/>
- </resourceSet>
- </resourceSets>
- </combres>
- defaultDuration 默认缓存的时间,单位为天数
- defaultVersion 合并后的资源版本,在你修改了资源文件后需要对版本进行修改,你可以指定auto或者手动设置一个版本号
- defaultDebugEnabled 调试的模式,为true时那么资源文件不进行压缩,开发时可以设置成true,上线后设置成false
具体添加压缩方法的配置节点,用于选择哪种方法对资源文件进行压缩
- <cssMinifiers>
- <minifiername="yui"type="Combres.Minifiers.YuiCssMinifier, Combres">
- <paramname="CssCompressionType"type="string"value="StockYuiCompressor"/>
- <paramname="ColumnWidth"type="int"value="-1"/>
- </minifier>
- </cssMinifiers>
- <jsMinifiers>
- <minifiername="msajax"type="Combres.Minifiers.MSAjaxJSMinifier, Combres"
- binderType="Combres.Binders.SimpleObjectBinder, Combres">
- <paramname="CollapseToLiteral"type="bool"value="true"/>
- <paramname="EvalsAreSafe"type="bool"value="true"/>
- <paramname="MacSafariQuirks"type="bool"value="true"/>
- <paramname="CatchAsLocal"type="bool"value="true"/>
- <paramname="LocalRenaming"type="string"value="CrunchAll"/>
- <paramname="OutputMode"type="string"value="SingleLine"/>
- <paramname="RemoveUnneededCode"type="bool"value="true"/>
- <paramname="StripDebugStatements"type="bool"value="true"/>
- </minifier>
- </jsMinifiers>
要使用哪种压缩方法,在resourceSet或者在resource上添加相应的属性即可,配置后像下面这样:
- <??>
- <combrescombres ='urn:combres'>
- <cssMinifiers>
- <minifiername="yui"type="Combres.Minifiers.YuiCssMinifier, Combres">
- <paramname="CssCompressionType"type="string"value="StockYuiCompressor"/>
- <paramname="ColumnWidth"type="int"value="-1"/>
- </minifier>
- </cssMinifiers>
- <jsMinifiers>
- <minifiername="msajax"type="Combres.Minifiers.MSAjaxJSMinifier, Combres"
- binderType="Combres.Binders.SimpleObjectBinder, Combres">
- <paramname="CollapseToLiteral"type="bool"value="true"/>
- <paramname="EvalsAreSafe"type="bool"value="true"/>
- <paramname="MacSafariQuirks"type="bool"value="true"/>
- <paramname="CatchAsLocal"type="bool"value="true"/>
- <paramname="LocalRenaming"type="string"value="CrunchAll"/>
- <paramname="OutputMode"type="string"value="SingleLine"/>
- <paramname="RemoveUnneededCode"type="bool"value="true"/>
- <paramname="StripDebugStatements"type="bool"value="true"/>
- </minifier>
- </jsMinifiers>
- <resourceSetsurl="~/combres.axd"defaultDuration="30"
- defaultVersion="auto"
- defaultDebugEnabled="auto">
- <resourceSetname="siteCss"type="css"minifierRef="yui">
- <resourcepath="~/styles/site.css"/>
- <resourcepath="~/styles/jquery-ui-1.7.2.custom.css"/>
- </resourceSet>
- <resourceSetname="siteJs"type="js">
- <resourcepath="~/scripts/jquery-1.4.4.js"minifierRef="msajax" />
- <resourcepath="~/scripts/jquery-ui-1.7.2.custom.min.js"minifierRef="off"/>
- </resourceSet>
- </resourceSets>
- </combres>
(5)删除 AppStart/Combres.cs,移除WebActivetor的引用。
(6)打开 global.asax 添加 using Combres;的引用。在 RegisterRoutes 第一行添加
- routes.AddCombresRoute("Combres");
(7)在需要的页面上添加:
- @using Combres.Mvc;
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>@ViewBag.Title</title>
- @Html.CombresLink("siteCss")
- @Html.CombresLink("siteBaseCss")
【转】asp.net mvc css/js压缩合并 --- combres的更多相关文章
- ASP.NET MVC 中CSS JS压缩合并 功能的使用方法
通过压缩合并js文件和css文件,可以减少 服务器的响应 次数和 流量,可以大大减小服务器的压力,对网站优化有比较明显的帮助!压缩合并 css 文件和js文件是网站优化的一个 比较常用的方法. ASP ...
- gulp之css,js压缩合并加密替换
为了防止客户端的静态资源缓存,我们需要每次更新css或js的时候,通过md5或时间戳等方式重新命名静态资源.让客户端可以重新请求资源,而不是从缓存里取.然后html模板里的src也要做相应的修改.当然 ...
- Asp.Net MVC 页面代码压缩筛选器-自定义删除无效内容
Asp.Net MVC 页面代码压缩筛选器 首先定义以下筛选器,用于代码压缩. /*页面压缩 筛选器*/ public class WhiteSpaceFilter : Stream { privat ...
- ASP.NET MVC之Bundle压缩JS和CSS
介绍Bundle之前先引用<淘宝技术这十年>中一段话,对Web前端稍微有点常识的人都应该知道,浏览器下一步会加载页面中用到的CSS.JS(JavaScript).图片等样式.脚本和资源文件 ...
- [Asp.net Mvc]为js,css静态文件添加版本号
方式一: 思路 string version = ViewBag.Version; @Scripts.RenderFormat("<script type=\"text/ja ...
- Asp.net MVC CSS/Javascript Bundle 配置文件
Asp.net mvc 中使用 Web Optimization 可以合并.压缩JS和CSS文件,但是每次修改都要改代码 ~/App_Start/BundleConfig.cs ,遂有了将它挪到配置文 ...
- RequireJS模块化后JS压缩合并
使用RequireJS模块化后代码被拆分成多个JS文件了,在部署生产环境需要压缩合并,RequireJS提供了一个打包压缩工具r.js来对模块进行合并压缩.r.js非常强大,不但可以压缩js,css, ...
- ASP.NET MVC+Vue.js实现联系人管理
接触了一天vue.js,简单浏览了一本关于vue的电子书,就开始动手使用ASP.NET MVC和Vue.js开发一个联系人管理的小程序. 先看一下这个联系人管理的小程序的界面,也就是我们大概要实现什么 ...
- ASP.NET(支持 ASP.NET MVC)性能优化包 - combres 介绍
项目地址:https://github.com/buunguyen/combres Overview Combres (previously hosted in CodePlex) helps you ...
随机推荐
- document.write vs document.getElementById
document.write: JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中写入字符串,一旦文档流已经关闭,那 ...
- C++11标准的类型别名
1.typedef 类型名 类型别名(类型别名列表):这是传统的C++类型别名声明. 2.C++11标准下,使用using,即using 类型别名=类型名.
- 基于jquery,bootstrap数据验证插件bootstrapValidator 教程
bootstrap:能够增加兼容性的强大框架. 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. 需要引用css: bootstrap.min.c ...
- spring的orm模块
spring整合hibernate 1.hibernate使用注解. daoImpl需要继承HibernateDaoSupport对象,针对给对象的getHibernateTemplate()进行hi ...
- C# 跨线程更新UI界面的适当的处理方式,友好的退出界面的机制探索
本文主要讲讲C#窗体的程序中一个经常遇到的情况,就是在退出窗体的时候的,发生了退出的异常. 工业软件技术交流群:群1:592132877(满) 群2:948305931 欢迎技术探讨 我们先 ...
- 使用pace监控ajax踩过的坑
使用vue.js开发移动端的活动页面时,有时候会出现因为请求的数据没有返回而使得当前活动页结构混乱或者不美观,这个时候可以考虑使用pace.js,通过设置参数值,在ajax全部请求结束之前显示load ...
- MAC OS下使用OpenSSL生成私钥和公钥的方法
MAC OS自带了OpenSSL,所以不用去编译那一坨跟SHIT一样的源码.直接在命令行里使用OPENSSL就可以. 打开命令行工具,然后输入 openssl打开openssl,接着只要三句命令就可以 ...
- js 在IOS系统微信浏览器内如何动态给title赋值
var body = document.getElementsByTagName('body')[0]; document.title = title; var iframe = document.c ...
- linux makefile (English)
############################################################################## Generic Makefile for ...
- Jquery中.attr与.prop的区别
☆ http://www.jb51.net/article/114876.htm http://www.365mini.com/page/jquery-attr-vs-prop.htm https:/ ...