2

我刚刚在我的项目中使用了 Combres 库来缩小 css 和 js 文件,并且基本上对页面进行了一些优化。每当我读到关于 Combres 的信息时,我看到它会将 etags 连同它优化的资源一起发送,但是当我发布我的项目时,Combres 压缩的资源上没有 etags。我需要进行任何配置才能使其正常工作吗?我正在使用 windows azure 来部署我的项目(如果重要的话)。

对于这个问题的帮助,我将不胜感激。

4

2 回答 2

3

您可能通过 Combres 之外的某种方式(例如 http 模块)禁用了 etags。根据您使用的是 IIS6 还是 IIS7.5,可以使用不同的技术来删除 etag。有些人在特定场景下的 web.config 中完成了它(我认为是经典应用程序池)。您可以在 web.config 中搜索“etag”以查看其中是否有任何内容。如果它不在您的 web.config 中,请在您的 Web 项目中搜索“etag”以查看您是否在某处的 IHttpModule 中删除它们。

此外,在您花太多时间在此之前,您可能会考虑忘记 etags。它们有点“过时”和过时。想法是,版本化文件的长期到期日期就足够了。如果访问者/用户清除了他们的缓存,则无论如何都不会有任何旧的 etag 可以比较。如果您更新您的梳理资源,它会吐出一个新的版本化路径,该路径也不会与旧缓存文件的 etag 进行比较。因此,无论哪种方式,您都不会从当前技术的 etags 中受益

事实上,许多人因为缺乏用处和浪费带宽而费尽心思将它们删除。(这可能是你没有它们的原因。你过去可能做过的一些性能调整可能会在可能的情况下禁用它们。)

于 2011-11-30T04:07:45.050 回答
0

您的文件是否被缩小,或者您使用什么实用程序来做这些都无关紧要。ETag 由 Web 服务器 (IIS) 控制,但我不确定 Azure 上是如何处理的,但您可以使用 HttpModule 来自定义 ETag:

http://codebetter.com/karlseguin/2010/01/08/asp-net-performance-part-2-yslow/

希望有帮助。

于 2011-11-29T22:13:39.490 回答