关于 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

image.png


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)。



相关文章
|
应用服务中间件 Apache nginx
关于 SAP Spartacus 重定向部分外部 url 到后台系统的问题
关于 SAP Spartacus 重定向部分外部 url 到后台系统的问题
orbeon form 通过 url 的方式同第三方应用集成的开发明细
orbeon form 通过 url 的方式同第三方应用集成的开发明细
|
存储 移动开发 前端开发
前端路由如何修改 URL ?
前端路由需要实现两个核心, 1. 修改 URL 而不引起页面刷新, 2. 检测 URL 的变化, 这两个核心取决于你采用的前端路由技术选择的方案, 即 hash 和 history, 当选择了技术后,
SAP UI5里一个包含众多操作的OData请求url实例
这个例子位于SAP CRM Fiori应用My Opportunity: 创建Opportunity时,需要维护Account字段。输入一个字符后,产生一个OData请求,搜索Account的fullName字段包含了该字符的所有数据:
SAP UI5里一个包含众多操作的OData请求url实例
|
JavaScript 前端开发
如何找出SAP Fiori launchpad URL start_up请求发起的具体位置
如何找出SAP Fiori launchpad URL start_up请求发起的具体位置
如何找出SAP Fiori launchpad URL start_up请求发起的具体位置
|
API
SAP Spartacus页面fake Url的防御机制 - not found页面的显示逻辑
SAP Spartacus页面fake Url的防御机制 - not found页面的显示逻辑
137 0
SAP Spartacus页面fake Url的防御机制 - not found页面的显示逻辑
|
Web App开发 Java
CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑
CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑
CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑
SAP Spartacus B2B页面的6个tile,url是维护在什么地方的?
SAP Spartacus B2B页面的6个tile,url是维护在什么地方的?
103 0
SAP Spartacus B2B页面的6个tile,url是维护在什么地方的?
|
Web App开发 移动开发 开发者
SAP C4C url Mashup的跳转工作原理 - 新的浏览器窗口是如何打开的
SAP C4C url Mashup的跳转工作原理 - 新的浏览器窗口是如何打开的
SAP C4C url Mashup的跳转工作原理 - 新的浏览器窗口是如何打开的