转自: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 第一行添加
(7)在需要的页面上添加:
- routes.AddCombresRoute("Combres");
- @using Combres.Mvc;
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>@ViewBag.Title</title>
- @Html.CombresLink("siteCss")
- @Html.CombresLink("siteBaseCss")