在此先感谢您的帮助。

我一直在尝试 YSlow 和 Google 页面速度,两者都提供了非常有用的建议,并且似乎没有一个比另一个更有优势,但当涉及到实体标签时,它们似乎在某种程度上存在分歧或冲突。以下代码满足YSlows“配置实体标签(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 会提供以下建议“指定缓存验证器”。另一位成员 奥拉隆 建议使用此代码来满足Google的要求

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

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

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

解决方案

  1. 是的
  2. 作为 蒋毅 指出,这些不是验证器。这些工具可帮助您评估页面的性能。您需要考虑他们的建议。但是,设置诸如“过期标头”之类的内容并不一定意味着用户代理会遵守这一点。就我个人而言,我看到 Firebug 中的 YSlow 插件没有列出某些资源,因为它们已设置了标头,尽管我已经设置了。重点是考虑这两种工具的输出,但我不会因为试图让这两种工具都满意而责备自己。
  3. 当然。您的第一个过期代码集已全部包含在内 图形化的 资源在未来 40 年内不会过期。这将对回访者的下载时间产生巨大影响。以及站点维护 - 即确保在站点更改时使缓存失效。你的第二条规则缓存 一切 一年。这将对您的网站产生非常严重的影响 - 例如缓存所有资源,包括 html 页面!
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top