SAP Spartacus not found的页面处理机制

当我们跳转到一个SAP Spartacus里实际并不存在的页面时:


SAP Spartacus not found的页面处理机制


首先会将url里的值比如1,作为pageLabelOrID的参数值,去Commerce Cloud后台读取对应的content page,当然是读取不到的,因此返回404错误:


SAP Spartacus not found的页面处理机制


观察这个canActivate方法:


SAP Spartacus not found的页面处理机制


输入参数route:


里面的RouterStateSnapshot结构的url字段,包含了试图跳转的url:


SAP Spartacus not found的页面处理机制


首先利用map操作,把route.url, 也就是UrlSegment结构里的path字段的值提取出来:



SAP Spartacus not found的页面处理机制


SAP Spartacus not found的页面处理机制



这里就会将1作为content page的id,去后台取page数据:

SAP Spartacus not found的页面处理机制


因为后台API返回404错误,pageData为undefined,所以激活NotFoundPage:


SAP Spartacus not found的页面处理机制


not found page的元数据:


SAP Spartacus not found的页面处理机制

最后的not found page渲染如下:

SAP Spartacus not found的页面处理机制

上一篇:(转)2.4.1 基础知识--添加服务引用与Web引用的区别


下一篇:Kudu 常见的几个应用场景