升级到 2.1 后从 basesites 请求中获取上下文后未及时设置
Context not set in time after fetching it from the basesites request after Upgrading to 2.1
我们设置了 Spartacus 项目以从 basesites 请求中获取上下文。可以在此处看到示例响应:
{
"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。然后在我们自定义的 occ-loaded-config-converter 中设置上下文(baseSite、语言、货币)。所以我们没有使用任何静态上下文或从 URL 中获取它,而是从 basesites 请求的响应中获取上下文。
站点上下文拦截器然后订阅例如this.languageService.getActive() 然后为后端请求设置正确的上下文(语言、货币):
/rest/v2/ung-site-rs/cms/pages?fields=DEFAULT&pageType=ContentPage&pageLabelOrId=/shoppster-akcija&lang=sr&curr=RSD
在 Spartacus 升级到 2.0 之前,这工作正常。在从 basesites 请求设置上下文之后,站点上下文拦截器中的订阅被触发,正确的上下文随后续后端请求一起发送。现在升级到 2.1 后,上下文不再按时设置。因此,前几个后端请求使用错误的上下文(默认 USD、en)发送,然后在某个时间点触发订阅并设置正确的上下文。
现在不能再使用 basesites 请求来设置上下文了吗?
如 中所述:升级到最新补丁版本 2.1.4
已解决问题。
我们设置了 Spartacus 项目以从 basesites 请求中获取上下文。可以在此处看到示例响应:
{
"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。然后在我们自定义的 occ-loaded-config-converter 中设置上下文(baseSite、语言、货币)。所以我们没有使用任何静态上下文或从 URL 中获取它,而是从 basesites 请求的响应中获取上下文。
站点上下文拦截器然后订阅例如this.languageService.getActive() 然后为后端请求设置正确的上下文(语言、货币):
/rest/v2/ung-site-rs/cms/pages?fields=DEFAULT&pageType=ContentPage&pageLabelOrId=/shoppster-akcija&lang=sr&curr=RSD
在 Spartacus 升级到 2.0 之前,这工作正常。在从 basesites 请求设置上下文之后,站点上下文拦截器中的订阅被触发,正确的上下文随后续后端请求一起发送。现在升级到 2.1 后,上下文不再按时设置。因此,前几个后端请求使用错误的上下文(默认 USD、en)发送,然后在某个时间点触发订阅并设置正确的上下文。
现在不能再使用 basesites 请求来设置上下文了吗?
如 2.1.4
已解决问题。