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 有什么想法吗?我尝试访问的每条路线都会显示此警告消息。
这是因为 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
我创建了一个新的 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 有什么想法吗?我尝试访问的每条路线都会显示此警告消息。
这是因为 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