这是自托管的 WP,运行在 nginx+php-fpm 8.3 上,使用 nginx fast-cgi 缓存动态内容,并使用 Redis 对象缓存(启用了 object cache drop-in)。没有其他层(没有 CDN、没有 CF、没有本地的 Varnish 或除 nginx fast-cgi 缓存之外的其他本地缓存)。清除 nginx fast cgi 缓存(激进地执行 rm -rf /etc/nginx/cache/*)对问题行为没有影响——即使在清除缓存目录并重启 nginx 和 php-fpm 后,仍然会提供过时的结果。
我确实启用了 Ajax 评论加载,是的,但同样,将其关闭(并清除 nginx 缓存以及重启 nginx 和 php-fpm 以防万一)对问题行为没有影响。浏览器仍然提供过时的评论。
选项已切换,transient-killer 已删除。问题行为没有改变。
它应用的效果似乎是提供一个没有缓存的 cache-control 标头,而不是一个指定缓存时间的标头。在没有它的情况下,我的浏览器似乎非常倾向于从其磁盘缓存提供 wp-json/wp-discourse/v1/discourse-comments 端点的过时缓存版本;如前所述,我必须按 Shift-Ctrl-F5(或等效操作)才能强制无缓存刷新。
问题行为似乎在浏览器端,而不是在持久的服务器缓存中。我所能访问的每个操作系统上的每个浏览器都在这样做。