CSDN广告是越来越多了,所有博客笔记不再更新,新网址 DotNet笔记
作用:多个JS或CSS文件 打包,同一加载,减少请求次数。
原因:点击YSlow查看详情
测试项目:下载示例项目
使用方法:
1) 下载Combres2.0组件,或本地下载(测试知,高版本的不支持MVC3),解压,得到一个文件夹“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>
7)配置App_Data文件夹下Combres.xml
<?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>
结束!!!(示例项目: 下载)