Реализация государственного трансферта Спартак
Я установил приложение 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 и укажите ее здесь.