当我对我的网站运行YSlow时,我在"配置ETags"项目上得到一个"F"; 它声称很多(全部?)我的图像,样式表等没有标签.
但是,如果我直接在其中一个图像上运行测试,我会在etag测试中获得A. 此外,在Firebug Net面板的Response标题上,我可以在整个页面和direct-url版本上看到此项目的etag.
我可能会做些什么来引起这种奇怪的行为?
(如果有人想要检查自己,我正在这里和这里打网址.我不介意进行健全性检查,看看是否只是我的浏览器感到困惑.)
关于IIS 7,我的答案是忽略YSlow的建议.
生成ETag时,IIS 7使用元数据库更改编号为零.这是冒号之后的部分...所以etag将始终像"5321116d3585ce1:0",其中第一部分是从上次修改的文件时间生成的,然后是冒号和元数据库更改编号.
从IIS 7开始,Microsoft始终将更改编号设置为零,因此即使在多个Web服务器上也是如此.对于IIS 5和6,如果要获得相同的最终结果,可以将其设置为零:
http://technet.microsoft.com/en-us/library/ee619764(WS.10).aspx
如果YSlow仍在使用iis_re = new RegExp的正则表达式规则("^ [0-9a-z] +:[0-9a-z] + $"); 那么他们就错了,应该重写它以接受etag为有效,如果它以:0结束