我刚刚在我的项目中使用了 Combres 库来缩小 css 和 js 文件,并且基本上对页面进行了一些优化。每当我读到关于 Combres 的信息时,我看到它会将 etags 连同它优化的资源一起发送,但是当我发布我的项目时,Combres 压缩的资源上没有 etags。我需要进行任何配置才能使其正常工作吗?我正在使用 windows azure 来部署我的项目(如果重要的话)。
对于这个问题的帮助,我将不胜感激。
我刚刚在我的项目中使用了 Combres 库来缩小 css 和 js 文件,并且基本上对页面进行了一些优化。每当我读到关于 Combres 的信息时,我看到它会将 etags 连同它优化的资源一起发送,但是当我发布我的项目时,Combres 压缩的资源上没有 etags。我需要进行任何配置才能使其正常工作吗?我正在使用 windows azure 来部署我的项目(如果重要的话)。
对于这个问题的帮助,我将不胜感激。
您可能通过 Combres 之外的某种方式(例如 http 模块)禁用了 etags。根据您使用的是 IIS6 还是 IIS7.5,可以使用不同的技术来删除 etag。有些人在特定场景下的 web.config 中完成了它(我认为是经典应用程序池)。您可以在 web.config 中搜索“etag”以查看其中是否有任何内容。如果它不在您的 web.config 中,请在您的 Web 项目中搜索“etag”以查看您是否在某处的 IHttpModule 中删除它们。
此外,在您花太多时间在此之前,您可能会考虑忘记 etags。它们有点“过时”和过时。想法是,版本化文件的长期到期日期就足够了。如果访问者/用户清除了他们的缓存,则无论如何都不会有任何旧的 etag 可以比较。如果您更新您的梳理资源,它会吐出一个新的版本化路径,该路径也不会与旧缓存文件的 etag 进行比较。因此,无论哪种方式,您都不会从当前技术的 etags 中受益。
事实上,许多人因为缺乏用处和浪费带宽而费尽心思将它们删除。(这可能是你没有它们的原因。你过去可能做过的一些性能调整可能会在可能的情况下禁用它们。)
您的文件是否被缩小,或者您使用什么实用程序来做这些都无关紧要。ETag 由 Web 服务器 (IIS) 控制,但我不确定 Azure 上是如何处理的,但您可以使用 HttpModule 来自定义 ETag:
http://codebetter.com/karlseguin/2010/01/08/asp-net-performance-part-2-yslow/
希望有帮助。