Pingdom提示Specify a Cache Validator问题的修复解决方法

Pingdom提示Specify a Cache Validator问题的修复解决方法插图

如果你用GTmetrixPingdom测试你的网站性能,你可能会遇到一个错误,提示Specify a Cache Validator,这是什么意思呢?这条信息意味着你没有充分利用浏览器的缓存功能。中文的意思是指定一个缓存验证器,而不幸的是,有这个提示说明这可能会对你的网站的性能产生负面影响。

在这篇文章中,搬主题将讨论 "Specify a Cache Validator"的错误意味着什么,还将告诉你如何在WordPress中修复它,并优化你的网站性能。

Specify a Cache Validator是什么意思?

通过启用缓存,你可以指示访问者的浏览器或 "客户端"在访问你的网站时将关键文件存储在本地。这样,用户就不需要在每次打开你的网页时重新加载整个网站及其资源。

缓存是网站中一个非常普遍的做法。它也是提高你的网站性能的最有效的方法之一。然而,正确的实施需要一个缓存 "策略"。

这个策略意味着包括缓存头,提供关于以下方面的明确指示:

  • 如何验证缓存的资源
  • 客户端应该缓存哪些资源
  • 客户端应该缓存多长时间的资源
  • 客户端应该如何寻找缓存资源的变化

"Specify a Cache Validator"的错误意味着你的网站在其响应中没有相应的缓存头信息。这种缺乏指示的情况并不意味着缓存不会工作。但是它不会像以前那样有效地工作。

Pingdom提示Specify a Cache Validator问题的修复解决方法插图1

如果你在分析你的WordPress网站的性能时遇到这个错误,这意味着你的网站可能没有尽可能快地加载。不过,你可以通过使用适当的缓存头来解决这个问题。

WordPress上指定一个缓存验证器的3种方法

有几种类型的缓存验证器,你可以在你的网站的头文件中实现。在某些情况下,服务器会自动添加这些验证器,比如last-modified或ETag验证器。

如果你遇到了 "Specify a Cache Validator"的错误,最可能的罪魁祸首是缺少cache-control或expires头文件。让我们介绍一下如何在WordPress中添加这两个头文件。

手动添加Cache-Control头文件

Cache-control头文件使你能够指定缓存的持续时间或 "长度",单位是秒。你也可以用这些头信息来表明该长度适用于哪些文件类型。头信息本身的结构将取决于你使用的网络服务器软件。

对于Apache服务器,你将需要编辑.htacess文件。你可以在你的WordPress根目录下找到它。然而,我们建议通过文件传输协议(FTP)来访问它。

打开.htaccess文件,添加以下代码片段,然后进行自定义。

<filesMatch ".(jpg|jpeg|png|gif|js|css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>

该代码表明了filesMatch标签内的文件类型的缓存长度。根据你想缓存的元素,你可以添加或删除文件类型。

如果你使用Nginx,你需要修改服务器的主要配置文件。你可以在/etc/nginx目录下找到它。

打开该文件,并在其中添加以下代码。

location ~* \.(jpg|jpeg|png|gif|js|css)$ {
add_header Cache-Control "public";
}

将修改保存到你的文件中,并关闭它。我们还建议在再次测试你的网站性能之前添加过期标题。

手动添加过期标头

Expires头文件是有点过时的缓冲验证器类型。事实上,cache-control头文件现在已经取代了它们。大多数现代浏览器会首先寻找cache-control头,但你可以同时指出这两个验证器来覆盖你的基础。

ApacheNginx中,手动添加过期头信息的工作方式与cache-control条目类似。要在Apache中添加过期头信息,你需要编辑.htaccess文件。

这里有一个头文件的例子,你可以复制,我们建议把它加到文件的底部,以避免冲突。

## EXPIRES HEADER CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresDefault "access 7 days"
</IfModule>
## EXPIRES HEADER CACHING ##

过期头文件表明每种文件类型的具体到期日期。如果你没有为一个文件类型指定日期,它将使用ExpiresDefault值。

对于Nginx服务器,你需要修改主配置文件。下面是NGINX中过期头的样子。

location ~* \.(png|jpg|jpeg|gif)$ {
expires 7d;
add_header Cache-Control "public";
}

把修改保存到你使用的任何一个文件中,就可以了。再去测试一下你的网站的性能,看看 "Specify a Cache Validator"的错误是否仍然存在。

使用WordPress缓存插件

最后一个方法,你可以考虑使用一个WordPress插件来指定缓冲验证器。比如一些最流行的WordPress缓存插件使你能够在不触及任何代码的情况下为你的网站配置过期和缓存控制头。

使用缓冲插件的缺点是,许多虚拟主机不允许使用它们。事实上许多管理型虚拟主机,通常不会让你使用缓存插件,因为他们为用户手动配置缓存以获得最佳性能。

大多数缓存插件会自动配置你的网站使用ETag或Last-Modified头文件。如果他们不这样做,你可以默认使用cache-control和expires验证器。

例如,W3 Total Cache让你完全控制你可以使用哪种类型的缓存头。

Pingdom提示Specify a Cache Validator问题的修复解决方法插图2

如果你的虚拟主机允许你使用缓存插件,搬主题建议你探索多种选择,看看哪一种你觉得更合适。另外你也可以手动指定缓存验证器。

最后总结

缓存是减少用户加载时间的最有效方法之一,毕竟重复访问者将受益于良好的缓存策略,因为本地存储的文件的加载时间将得到改善。然而如果你不配置一个特定的缓冲政策,你就不会得到最好的网站性能。

如果你的服务器默认不这样做(这比较常见),有几种方法可以在WordPress中Specify a Cache Validator。根据你的主机和网站的需要,要么手动添加cache-control头,要么手动添加expires头,要么使用缓存插件,都可以解决你的问题。如果这些都不能解决,那就应该联系你的主机支持,以获得更深入的帮助。

 收藏 (0) 更新不易,打赏吧

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《Pingdom提示Specify a Cache Validator问题的修复解决方法》
文章链接:https://www.banzhuti.com/how-to-fix-the-specify-a-cache-validator-error.html
分享到: 生成海报
版权免责声明

① 本站提供的资源(插件或主题)均为网上搜集,如有涉及或侵害到您的版权请立即通知我们。
② 本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
③ 因代码可变性,不保证兼容所有浏览器、不保证兼容所有版本的WP、不保证兼容您安装的其他插件。
④ 本站保证所提供资源(插件或主题)的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤ 由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥ 使用该资源(插件或主题)需要用户有一定代码基础知识!另本站提供汉化使用安装教程,仅供参考。
⑦ 有时可能会遇到部分字段无法汉化,同时请保留作者汉化宣传信息,谢谢!
⑧ 本站资源售价只是赞助和汉化辛苦费,收取费用仅维持本站的日常运营所需。
⑨ 如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑩ 如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

WordPress主题 插件 建站 汉化

定制服务联系我们
切换注册

登录

点击按钮进行验证

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活

点击按钮进行验证