带有MbCompression的ScriptResource.axd

时间:2011-11-03 11:40:58

标签: javascript minify scriptresource.axd

我正在使用MbCompression库,我想知道 - MbCompression是否缩小了ScriptResource.axd?是否有任何工具可以在运行时最小化ScriptResource.axd,而对web.config的更改最少?

1 个答案:

答案 0 :(得分:3)

我不熟悉MbCompression,但请查看RequestReduce。这是我的一个OSS项目,我相信它完全符合你的要求:在运行时缩小/组合css和javascript。与其他框架不同,RequestReduce不需要代码更改,也不需要重新排列脚本和css以及非常小的配置。所有必要的配置是添加模块。以下是您在配置中真正需要的所有内容:

<system.web>
 <httpModules>
  <add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce"/>
 </httpModules>
</system.web>
<system.webServer>
 <modules>
  <validation validateIntegratedModeConfiguration="false"/>
  <add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce"/>
 </modules>
</system.webServer>

就是这样,没有额外的代码。您可以访问许多选项来打开和关闭各种内容,并在多个服务器上配置缓存同步或在您的网址中包含CDN主机。但对于开箱即用的解决方案,上述内容应该是必要的。

它将查找任何脚本URL并将其缩小并将其与相邻脚本标记内容合并,只要满足以下条件:

  1. url的mime类型是有效的javascript mime类型。因此应该捕获ScriptResources和WebResources。
  2. 该网址没有无缓存或无存储缓存控制标头。
  3. 网址没有max-age或expires标头少于一周。
  4. 我听说有人抱怨说webresource.axd或scriptresource.axd被发送到没有设置缓存的浏览器。这对您来说可能不是问题,但如果您发现这种情况并且缺乏缓存不是故意的,您可以将其添加到您的web.config中:

    <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="180.00:00:00" cacheControlCustom="public" />
    </staticContent>
    

    此外,它还可以自动执行任何背景图像,优化PNG压缩,并在为缓存的css / javascript / sprite提供缓存标头时使用最佳做法。

    此框架目前在Microsoft由MSDN和Technet画廊使用。

    您可以通过Nuget(建议)安装,也可以从http://www.requestreduce.com下载。