JackCA
(Jack)
1
我遇到一个有点奇怪的问题,但涉及的因素很多。
问题:
当我已登录并直接导航到论坛首页时,UI 显示我似乎未登录,例如导航栏显示的是注册/登录链接,而不是用户头像。
直接导航到特定帖子时,会显示正确的已登录状态,随后的 pushstate 转换也能正常工作,包括前往首页。但是,在首页刷新后,又会显示为未登录状态(如上所述)。
背景:
我的 Discourse 完全部署在 Fastly 后面,除了轮询功能外,其他都通过 Fastly 处理;轮询功能直接与我的 GCP Compute 实例通信。
我猜测这与缓存层有关,但我已经非常仔细地阅读了本论坛上的相关讨论。我没有启用 Fastly 的自动 GZIP 压缩功能。
论坛地址在此,上述问题的视频在此。
JackCA
(Jack)
2
经过进一步调查,我认为该问题可能与 Cache-Control 响应头设置为 no-cache, no-store 且 Fastly 未遵循这些值 有关。
我的 Fastly CDN 将看似面向网络爬虫的首页 noscript 版本标记为 HIT,原因可能是它以 no-cache, no-store 值进行了爬取。
Fastly 建议在这种情况下添加 Expires: 0。
我已按 Fastly 文档的建议实施了该措施,作为临时解决方案。