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