作为单页应用程序 (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 均从后端加载: