Реализация государственного трансферта Спартак

Я установил приложение SSR to Spartacus с помощью команды schematics и запустил приложение в режиме SSR .

В моих инструментах разработчика Chrome я вижу, что содержимое моей домашней страницы было успешно сгенерировано сервером SSR .

Однако на вкладке «Сеть» я вижу, что запросы XHR по-прежнему отправляются, а данные извлекаются с помощью HTTP-вызовов вместо использования данных, полученных с помощью экспресс-доставки .

Я попытался использовать конфигурацию из https://sap.github.io/spartacus-docs/ssr-transfer-state/#page-title в моих поставщиках app.module.ts с помощью provideConfig (я также пробовал это с Config.Module. withConfig в app.module.ts также импортирует файл), но он не работал, так как запросы CMS и продуктов все еще отправлялись от клиента.

В конце визуализированного HTML-кода я вижу, что данные состояния связаны в формате ключевого значения с тегом скрипта:

      <script id="spartacus-state" type="application/json">...</script>

Мне интересно, можно ли использовать эти данные из шаблона HTML на стороне клиента и не получать их снова с помощью HTTP-вызовов (реализация состояния передачи Angular Universal в приложении Spartacus )

Буду очень благодарен за любые советы относительно правильного подхода (переопределения адаптеров или резолверов или любого другого решения) для реализации передачи состояния в приложении Spartacus.

Спасибо.

1 ответ

Настроенное состояние передачи должно работать OOTB для некоторых частей данных, но не для всех. См. исходный код cms-store.module.ts, product-store.module.tsа также site-context-store.module.ts.

Обратите внимание, что по умолчанию данные страницы CMS повторно загружаются в клиент, если вы не настроите RouteLoadStrategyк ONCEв конфиге маршрутизации.

Если вы обнаружите, что состояние передачи Spartacus работает неправильно, создайте заявку на ошибку в репозитории Spartacus и укажите ее здесь.