乐趣区

关于前端:SAP-电商云-Spartacus-UI-的-External-Routes-设计明细

作为单页应用程序 (SPA),Spartacus 应用 Angular routerLink 指令,依据设计,该指令不会从后端的 Web 服务器中加载新的页面。因而,Spartacus 通常只容许用户在应用程序自身内导航。换句话说,Spartacus 通常只加载单页应用程序中的视图。

然而,如果您要从传统店面零碎(例如 SAP Commerce Accelerator)逐渐(和一一路由)迁徙到 Spartacus,则 Spartacus 中的内部路由性能容许您应用不同的零碎来驱动不同的局部。应用内部路由,开发人员能够指定从后端加载哪些路由,甚至能够将路由重定向到不同的域。

要应用 Spartacus 和另一个零碎在同一个域中运行店面,您须要定义 URL 模式以辨别两个店面零碎。这些模式应该利用于后端服务器、Spartacus 配置和 Angular Service Worker(启用 PWA 时)。

模式应按如下形式利用:

  • 拜访深层链接时,后端服务器应提供 Spartacus 视图,或者应提供来自其余店面零碎的页面。
  • 当应用 Angular routerLink 进行导航时,Spartacus 应该激活一个 SPA 路由,或者它应该从后端齐全加载页面。
  • 启用 PWA 后,Angular Service Worker 会拦挡导航申请。当齐全加载(或从新加载)页面时,Service Worker 应该返回缓存的单页应用程序的 index.html,或者 Service Worker 应该绕过缓存,以便后端能够服务该页面。

您能够通过导入 ConfigModule.withConfig() 为外部路由提供带有 URL 模式的配置。

URL 模式应用无限的 glob 格局,如下所示:

  • ** 匹配 0 个或多个门路段
  • * 匹配 0 个或多个字符,不包含 /
  • ? 只匹配一个字符,不包含 /
  • ! 是将模式标记为正数的前缀,这意味着仅蕴含与模式不匹配的 URL

例子:

在以下示例中,SPA 中仅出现主页、购物车和产品详细信息页面,所有其余 URL 均从后端加载:

退出移动版