关于 SAP Spartacus 重定向部分外部 url 到后台系统的问题

简介: 关于 SAP Spartacus 重定向部分外部 url 到后台系统的问题

许多客户将采用逐步(route-by-route)的方式从 Accelerator 迁移到 spartacus,这意味着客户将使用不同的系统在同一域中同时驱动部分店面。


我们希望支持具有可配置的路由,并可选择从 SPA 中退出并重新加载页面以允许后端驱动的响应(基于 URL 模式)。


只要我们在 SPA 的范围内,我们只执行 interal 导航,因为使用了 Angular 的 routerLink,按照设计它不会进行完全重新加载。


但是,我们可以使用 Guard 定义虚拟路由,强制执行指定配置路径的完全重新加载。


为了更容易测试(不要进入闪烁页面重新加载的无限循环),通过扩展 External Routes Guard 来延迟页面重新加载:


@Injectable()
export class CustomRoutingMigrationGuard extends ExternalRoutesGuard{
  redirect(route, state) {
    console.log('migration guard activated, redirect in 5 seconds');
    setTimeout(() => {
      super.redirect(route, state);
    }, 5000);
  }
}


在 app Module 里定义这个 Guard:


 providers: [
    { provide: ExternalRoutesGuard, useClass: CustomRoutingMigrationGuard },
  ]

测试:


routing: {
    internal: [
          '/**',
          '!/cart',
          '!/?',
          '!/???',
          '!/login',
          '!/login/register',
          '!/product/*/*',
          '!/Open-Catalogue/**/p/**',
    ]
  }

验证下面列出的页面是否执行重新加载(由于缺少后端规则而发生无限循环的重新加载,这些规则通常会根据 URL 其模式呈现不同的店面):


/cart

/x

/faq

/abc

/login

/login/register

/product/358639/DSC-N1

/Open-Catalogue/Cameras/DigitalCameras/Digital-Compacts/NV10/p/553637


https://github.com/SAP/spartacus/issues/12292




Angular 预配置了 webpack 开发服务,该服务使用开发人员可以配置的代理服务器。如果您有本地运行的 Accelerator,可以为那些应该链接到本地 Accelerator 的路由使用代理配置。 我们需要记录以下内容:


  • 使用代理配置文件配置 angular.json 文件


  • 记录一个示例代理配置


  • 记录一个 package.json 脚本以便于启动


我们还可以使用本地 nginx 记录替代设置。


  • ExternalRouting Module does not get added when generating / updating a project


  • Support for Hybrid Storefront with Accelerator


  • How to configure Spartacus and Accelerator based Storefront Side by Side? (External Routes)


为了实现这两个店面都在同一个域下,需要设置一个 apache 虚拟主机或其他东西(假设 electronics.local 指向 9002 和 4200)。



相关文章
|
2月前
|
中间件
什么是 SAP CRM 系统里的 Initial Download
什么是 SAP CRM 系统里的 Initial Download
23 0
|
4月前
|
数据采集 供应链 数据管理
关于评估 SAP 主数据的数据初始化对 SAP 系统影响范围的方法论
关于评估 SAP 主数据的数据初始化对 SAP 系统影响范围的方法论
44 0
|
4月前
|
缓存 监控 安全
SAP ABAP 系统里事务码 SMICM 的作用
SAP ABAP 系统里事务码 SMICM 的作用
68 0
|
4月前
|
供应链 中间件
SAP CRM 和 ERP 系统之间的主数据同步 - PRODUCT_R3_ADAPTER
SAP CRM 和 ERP 系统之间的主数据同步 - PRODUCT_R3_ADAPTER
70 0
|
24天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
16 0
|
28天前
|
数据库
如何查询 SAP ABAP 系统里消耗存储空间排名前几位的数据库表试读版
如何查询 SAP ABAP 系统里消耗存储空间排名前几位的数据库表试读版
10 0
如何查询 SAP ABAP 系统里消耗存储空间排名前几位的数据库表试读版
|
3月前
|
安全 数据安全/隐私保护
SAP ABAP Gateway 系统接口 /IWBEP/IF_MGW_APPL_SRV_RUNTIME 的作用介绍
SAP ABAP Gateway 系统接口 /IWBEP/IF_MGW_APPL_SRV_RUNTIME 的作用介绍
33 0
|
3月前
|
SQL 开发框架 数据库
聊聊 SAP ABAP 系统里的胖接口(Fat Interface)
聊聊 SAP ABAP 系统里的胖接口(Fat Interface)
28 0
|
3月前
|
搜索推荐
关于 SAP ABAP 系统的 User parameter COM_IOITF_DEBUG
关于 SAP ABAP 系统的 User parameter COM_IOITF_DEBUG
19 0
|
3月前
|
存储 BI 数据库
SAP ABAP 系统数据库表 TFDIR的作用介绍
SAP ABAP 系统数据库表 TFDIR的作用介绍
41 1