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