作用:多个JS或CSS文件 打包,同一加载,减少请求次数。
原因:点击YSlow查看详情
测试项目:下载示例项目
使用方法:
1) 下载Combres2.0组件,或本地下载(测试知,高版本的不支持MVC3 ,郁闷了,也不想想MVC4谁用Combres啊,自带的多好),解压,得到一个文件夹“Combres_2.0”,里面
2) 建一个MVC3项目。
3)从解压文件夹中找到 “ Combres_2.0\Source\Source\Combres\Samples\MvcSample\App_Data\combres.xml ” 文件 ,然后把它复制到MVC3项目的App_Data文件夹下
4)添加引用 Combres.dll和Combres.Mvc.dll(他们在Combres_2.0\Binary\Binary文件夹下面)
5)
5-1:打开根目录下面的web.config文件, 在configSections配置节下添加
<section name="combres" type="Combres.ConfigSectionSetting, Combres, Version=2.0.0.0, Culture=neutral, PublicKeyToken=49212d24adfbe4b4"/>
5-2:在configuration配置节下添加Combres配置文件的路径,此文件的作用我们下面再说。
<combres definitionUrl="~/App_Data/combres.xml"/>
配置好了后应该像这样(combres节点必须在configSections节点下面)
<configuration> <configSections> <section name="combres" type="Combres.ConfigSectionSetting, Combres, Version=2.0.0.0, Culture=neutral, PublicKeyToken=49212d24adfbe4b4"/> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <combres definitionUrl="~/App_Data/combres.xml"/>
6)在<system.web>节点下面添加httpModules的节点
<httpModules> <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </httpModules>
<?xml version="1.0" encoding="utf-8" ?> <combres xmlns='urn:combres'> <filters> <filter type="Combres.Filters.FixUrlsInCssFilter, Combres" /> <filter type="Combres.Filters.DotLessCssFilter, Combres" acceptedResourceSets="dotLessCss" /> </filters> <jsMinifiers> <minifier name="msajax" type="Combres.Minifiers.MSAjaxJSMinifier, Combres" binderType="Combres.Binders.SimpleObjectBinder, Combres"> <param name="CollapseToLiteral" type="bool" value="true" /> <param name="EvalsAreSafe" type="bool" value="true" /> <param name="MacSafariQuirks" type="bool" value="true" /> <param name="CatchAsLocal" type="bool" value="true" /> <param name="LocalRenaming" type="string" value="CrunchAll" /> <param name="OutputMode" type="string" value="SingleLine" /> <param name="RemoveUnneededCode" type="bool" value="true" /> <param name="StripDebugStatements" type="bool" value="true" /> </minifier> </jsMinifiers> <resourceSets url="~/combres.axd" defaultDuration="30" defaultVersion="auto" defaultDebugEnabled="false" defaultIgnorePipelineWhenDebug="false" localChangeMonitorInterval="30" remoteChangeMonitorInterval="60" > <!--自定义包名称,包内的文件类型(一般就是js或css)--> <!--示例1--> <resourceSet name="siteJs" type="js"> <!--被打包的文件1--> <resource path="~/scripts/jquery-1.7.1.js" /> <!--被打包的文件2--> <resource path="~/scripts/TestJs.js" /> </resourceSet> <!--示例2--> <resourceSet name="siteJs2" type="js"> <resource path="~/scripts/jquery-1.7.1.js" /> <resource path="~/scripts/TestJs2.js" /> </resourceSet> <!--示例3--> <resourceSet name="siteCss" type="css"> <resource path="~/scripts/test.css" /> <resource path="~/scripts/admin.css" /> </resourceSet> </resourceSets> </combres>
8)在Global文件中,添加using Combres引用, 然后在 public static void RegisterRoutes(RouteCollection routes)函数的第一行添加:
routes.AddCombresRoute("Combres");
9)在视图中@using Combres.Mvc 然后添加一句@Html.Raw(Url.CombresLink("siteJs"))
@{ Layout = null; } <!DOCTYPE html> @using Combres.Mvc; <html> <head> <title>Test</title> @*@ViewBag.js*@ @Html.Raw(Url.CombresLink("siteJs")) </head> <body> <div id="id"> </div> </body> </html>