2

在此先感谢您的帮助。

我一直在试验 YSlow 和 Google 页面速度,两者都提供了非常有用的建议,而且似乎都没有比另一个优势,但是当涉及到实体标签时,它们似乎在某种程度上存在分歧或冲突。以下代码满足 YSlows 'Configure entity tags (ETags)' 指针

Header unset ETag
FileETag None
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header unset Last-Modified
Header set Expires "Fri, 21 Dec 2050 00:00:00 GMT"
Header set Cache-Control "public, no-transform"
</FilesMatch>

然而,有了这个代码,Google Page Speed 提供了以下建议“指定一个缓存验证器”。另一位成员Aularon建议使用此代码来满足 Google 的要求

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
</IfModule>

两者分别工作,但两种解决方案都不能满足两个验证器,所以我的问题是。

  1. 我应该关心吗?
  2. 两个验证器都有一个好的解决方案吗?
  3. 这两种解决方案真的会产生重大影响吗?
4

1 回答 1

3
  1. 是的
  2. 正如蒋毅所指出的,这些不是验证者。这些是帮助您评估页面性能的工具。你需要考虑他们的建议。然而,设置像 Expires Header 这样的东西并不一定意味着用户代理会尊重它。就个人而言,我已经看到 Firebug 中的 YSlow 附加组件没有将某些资源列为设置了它们的 Header 即使我有。重点是考虑这两种工具的输出,但我不会因为试图让两者都开心而自责。
  3. 当然。您的第一个过期代码集的所有图形资源在接下来的 40 年内都不会过期。这将对回访者的下载时间产生巨大影响。以及站点维护 - 即确保在站点更改时使缓存失效。您的第二条规则将所有内容缓存一年。这将对您的网站产生非常严重的影响 - 例如缓存您的所有资源,包括 html 页面!
于 2010-10-18T01:55:41.343 回答