【发布时间】:2022-02-15 17:48:15
【问题描述】:
我正在尝试让 Spartacus 与 SSR 一起工作。打开默认 URL http://localhost:4200 时,店面按预期呈现,但仅在我先清除站点数据之后。当我尝试浏览店面时,API 调用失败并显示 504(网关超时)。 Chrome 开发工具表明错误发生在服务工作者中。此时,我想知道我是否错误地配置了 Spartacus。当使用 yarn start 而不是 yarn serve:ssr 运行 Spartacus 时,我可以加载主页并正常浏览网站。
OS: Ubuntu 16.04.6 LTS
Chrome Version: 73.0.3683.75
Node version: 11.15.0
Angular CLI version: 8.3.8
Yarn version: 1.19.1
ng new ssr-spartacus-app --style=scss
cd ssr-spartacus-app
ng add @spartacus/schematics --baseUrl https://localhost:9002 --baseSite cmssiteuid --pwa --ssr
rm src/app/app.component.html
echo "<cx-storefront>Loading...</cx-storefront>" > src/app/app.component.html
yarn build:ssr
yarn serve:ssr
在运行 yarn build:ssr 之前,我对 app.module.ts 文件进行了以下更改:
之前
context: {
baseSite: ['cmssiteuid'],
},
之后
authentication: {
client_id: 'mobile_android',
client_secret: 'secret',
},
context: {
urlParameters: ['baseSite', 'language', 'currency'],
baseSite: ['cmssiteuid'],
},
我还将anonymousConsents 设置为false。将此设置为 true 时,我遇到了很多 COR 错误。
如果我已经为此摸不着头脑,我希望对 Spartacus 的内部运作有更多了解的人能够阐明为什么 Spartacus 对 SSR 有这样的行为。
【问题讨论】:
-
嗨大卫,你能提供更多信息吗:.1。哪些 API 调用失败(全部失败?) 2. SSR 是否正常工作,即如果您在 Chrome 控制台中禁用 JavaScript,您是否看到呈现的静态视图? (您还可以检查页面源中是否存在渲染的 HTML)。