У нас есть наш проект Spartacus, настроенный для получения контекста из запроса базовых сайтов. Образец ответа можно увидеть здесь:

{
   "baseSites" : [ {
      "defaultLanguage" : {
         "isocode" : "sl"
      },
      "geoRecommended" : false,
      "showTeaser" : true,
      "stores" : [ {
         "currencies" : [ {
            "isocode" : "EUR"
         } ],
         "defaultCurrency" : {
            "isocode" : "EUR"
         },
         "defaultLanguage" : {
            "isocode" : "sl"
         },
         "languages" : [ {
            "isocode" : "sl"
         } ],
      } ],
      "uid" : "ung-site-si",
      "urlEncodingAttributes" : [ "languageCountry" ],
      "urlPatterns" : [ "(?i)^https?://localhost(:[\\d]+)?/rest/.*$", "(?i)^https?://[^/]+/(sl-SI)/?.*$" ]
   }, ...
]

На данный момент у нас созданы две базовые площадки. UrlPatterns используются для поиска правильного baseSite. Затем контекст (baseSite, язык, валюта) устанавливается в нашем пользовательском occ-loaded-config-converter. Таким образом, мы не используем какой-либо статический контекст и не извлекаем его из URL-адреса, а получаем контекст из ответа на запрос базовых сайтов.

Затем перехватчик контекста сайта подписывается, например, на this.languageService.getActive (), а затем устанавливает правильный контекст (язык, валюту) для внутренних запросов:

/rest/v2/ung-site-rs/cms/pages?fields=DEFAULT&pageType=ContentPage&pageLabelOrId=/shoppster-akcija&lang=sr&curr=RSD

До обновления Spartacus до 2.0 это работало нормально. Сразу после того, как контекст был установлен из запроса базовых сайтов, подписка в перехватчике контекста сайта была инициирована, и правильный контекст был отправлен с последующими запросами бэкэнда. Теперь после обновления до 2.1 контекст больше не устанавливается вовремя. Таким образом, первые несколько запросов к серверу отправляются с неправильным контекстом (по умолчанию USD, en), а затем в какой-то момент срабатывают подписки, если установлен правильный контекст.

Это может быть связано с этим изменением: https://sap.github.io/spartacus-docs/technical-changes-version-2/#context-change-action-not-dispatched-on-the-initial-setting- полезный

Теперь больше нельзя использовать запрос базовых сайтов для установки контекста?

1
Armin 2 Дек 2020 в 12:57

1 ответ

Лучший ответ

Как описано в комментарии: переход на последнюю версию патча 2.1.4 устранил проблему.

0
Platonn 4 Дек 2020 в 09:35