乐趣区

关于sap:关于-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/sparta…

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

退出移动版