2

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

4

1 回答 1

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>

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

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

  1. url 的 mime 类型是有效的 javascript mime 类型。所以 ScriptResources 和 WebResources 应该被捕获。
  2. 该 url 没有 no-cache 或 no-store 缓存控制标头。
  3. 该 url 没有 max-age 或 expires header 少于一周。

我听说有人抱怨 webresource.axd 或 scriptresource.axd 被发送到没有设置缓存的浏览器。这对您来说可能不是问题,但如果您看到这种情况发生并且不是故意缺少缓存,您可以将其添加到您的 web.config 中:

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

此外,它可以自动生成任何背景图像,优化它们的 PNG 压缩,并在为其缓存的 css/javascript/sprites 提供缓存头时使用最佳实践。

该框架目前在 Microsoft 被 MSDN 和 Technet 画廊使用。

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

于 2011-11-03T14:25:44.997 回答