【发布时间】:2021-10-20 17:52:02
【问题描述】:
最近我们将 Spartacus 从 2.0 升级到 3.4 版本,以修复我们在早期版本的 Spartacus 中看到的 SSR 问题。但是,我们发现 SSR 优化存在一个非常严重的问题,此升级仅在生产环境中发现,我们于 2021 年 10 月 5 日上线。
根据文档,如果 SSR 无法在特定时间段内呈现页面,Spartacus 会回退到 CSR(内容侧呈现)。在后台,SSR 服务器继续渲染页面的 SSR 版本。此渲染完成后,页面将被放置在本地缓存中,以便在下次请求时返回。
在解释了 Spartacus 正在做什么 OOTB 之后,现在在生产环境中发生了什么?
如果用户 A 正在访问网站 www.freedom.com.au(澳大利亚网站),假设 Spartacus 回退到 CSR,因为 SSR 无法呈现页面。现在,如果同一个用户或另一个用户假设用户 B 请求 www.freedomfurniture.co.nz(新西兰站点),并且如果此请求转到缓存 AU 站点页面的同一节点,即使用户请求 NZ 站点,SSR 也会返回 AU 渲染页面.
为解决此问题,我们将渲染策略用作 ALWAYS_SSR,这样它就不会回退到 CSR,因此不会生成此缓存,并且客户不会看到此问题。这是我们正在采取的正确方法吗?这会影响性能还是会与 Spartacus 的 2.0 版相同?我们能够在本地开发框中轻松复制此问题,因为只有一个节点存在,并且在此修复后,它不会被复制。
如果不是问题,请告诉我们,我们正在围绕它进行一些错误的分析。
文档链接:https://sap.github.io/spartacus-docs/server-side-rendering-optimization/
【问题讨论】: