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