帮助确定缓存问题的根源

时间:2017-02-19 作者:avoision

查看我的网站主页时(zilredloh.com), 有时我看不到最新的帖子。将发布一篇新帖子,但主索引页没有反映这一点。通过F5刷新浏览器将显示新内容。

我知道浏览器有时会缓存内容,但我以前在其他网站上从未遇到过如此严重的缓存问题。这个问题似乎偶尔会发生,我在使用不同的浏览器和从不同的位置看到过这种情况。

今天早上,我在Safari打开了这个网站。最近展示的帖子日期为2月10日。然而,在这段时间之后,有两篇文章发表了——它们根本没有出现:

Screenshot of Safari, Dev Tools

我知道,如果刷新或清除浏览器缓存,我将看到最新的内容。这不是我的问题。我想了解的是,这种缓存从何而来。

在上面的屏幕截图中,我看到大多数请求的资产的状态为200。但有些资产(如谷歌字体、谷歌分析和wp.pixel.com)并没有缓存。

这完全是因为浏览器的缓存吗?如果是这样的话,它似乎异常咄咄逼人。我已经联系了我的主机(WebHostingBuzz),但他们告诉我“默认情况下cPanel中没有缓存”

我在Chrome、Firefox和Safari(Mac)上看到过这个零星的问题custom theme.

刷新似乎总是检索最新和最新的文件/帖子,但有时返回网站时。。。我似乎正在获取缓存视图。我不清楚为什么。

如果您能就故障排除的重点提供任何建议,我将不胜感激。

谢谢-菲利克斯

追踪路线结果:Local vs。ping.eu

2 个回复
最合适的回答,由SO网友:JpaytonWPD 整理而成

您可能需要在主模板标头中设置nocache标头。将其包含在标题顶部附近。开始标记后的php:nocache_headers()

从这里开始:Function Reference/nocache headers

运行一些测试,我认为这只会影响主页文件,其他文件仍应正常缓存。

更理想的是,wordpress应该在主页上发送最后修改的标题。等一下,我再深入研究一下。

请注意缓存控件的最大年龄。如您所见,缓存已设置为30天。这意味着浏览器将假定30天内没有任何更改,除非服务器发送不同的标头。

HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.45
Cache-Control: public, max-age=2592000
Expires: Wed, 22 Mar 2017 01:15:09 GMT
Content-Type: text/html; charset=UTF-8
Link: <http://zilredloh.com/wp-json/>; rel="https://api.w.org/"
Link: <http://wp.me/1ZLfW>; rel=shortlink
Vary: Accept-Encoding
Date: Mon, 20 Feb 2017 01:15:09 GMT
Accept-Ranges: bytes
Server: LiteSpeed
Connection: close
Content-Length: 85258
添加代码后:注意第二组缓存控制并过期。

HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.45
Cache-Control: public, max-age=2592000
Expires: Wed, 22 Mar 2017 02:01:16 GMT
Content-Type: text/html; charset=UTF-8
Link: <http://zilredloh.com/wp-json/>; rel="https://api.w.org/"
Link: <http://wp.me/1ZLfW>; rel=shortlink
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Vary: Accept-Encoding
Date: Mon, 20 Feb 2017 02:01:16 GMT
Accept-Ranges: bytes
Server: LiteSpeed
Connection: close
Content-Length: 85258

SO网友:Matt

要缩小范围,可以尝试禁用浏览器中的缓存。在Chrome-[开发人员工具]>[网络]中,勾选显示“禁用缓存”的框。

相关推荐

(Xdebug Profiler)为什么一个页面会生成两个cachegrind文件?

当我启用时xdebug profiler, 在admin中打开一个页面,它会生成两个名称几乎相同的cachegrind文件cachegrind.out.1498219635_761795.crown__minilio_wp-admin_edit_php cachegrind.out.1498219639_141988.crown__minilio_wp-admin_edit_php 输出名称定义为xdebug.profiler_output_name = \"cachegrind.out