SSR 渲染超时,回退到 CSR for (all routes)

SSR rendering exceeded timeout, fallbacking to CSR for (all routes)

我创建了一个新的 angular 项目和 运行 以下命令: ng add @spartacus/schematics --baseUrl https://spartacus-demo.eastus.cloudapp.azure.com:8443/ --baseSite=electronics-spa --ssr。之后,我运行命令npm run dev:ssr,打开http://localhost:4200,发现如下问题:

关于如何更正此错误并使应用 运行 SSR 而不是 CSR 有什么想法吗?我尝试访问的每条路线都会显示此警告消息。

(https://github.com/SAP/spartacus/issues/10638)

这是因为 Spartacus 3.0 及更高版本提供了 SSR 优化功能。

您可以在 server.ts 中延长超时(将第二个参数传递给 NgExpressEngineDecorator.get 方法)或将其设置为 0,因此它根本不会回退到 CSR。这是一个例子:

const ngExpressEngine = NgExpressEngineDecorator.get(engine, { timeout: 0 });

您可以使用 API 文档来获取可用选项的列表: https://sap.github.io/spartacus/interfaces/SsrOptimizationOptions.html

此外,关于此功能的扩展文档正在制作中,应该很快就会可用。

我遇到了同样的问题,但更改超时没有帮助!

根本原因是:商务云的证书无效,因为是自己分配的。 因为我使用的是本地商务,所以 URL: localhost://9002

解决方法是:

将以下配置添加到 package.json

"scripts": {
    "dev:ssr": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 ng run mystore:serve-ssr",
},
[...]
"devDependencies": {
    [...]
    "cross-env": "^7.0.0"
}

然后运行下面开始斯巴达克斯

yarn dev:ssr