SCP上的Angular-路由的应用必须回退到index.html

2020-09-16 12:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在尝试在SCP上托管...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试在SCP上托管Angular6应用程序,并且工作正常。

到目前为止,行不通的是使用动态路由启动应用程序,例如:

 https://launchpad-  .dispatcher.hana.ondemand.com/start 

我在这里收到错误:" 404-未找到"

如果在没有"/img/start"的情况下调用我的应用程序,则可以正常工作,因为我先重定向到index.html,然后重定向到"/img/start"。

如何强制服务器首先将每个动态路由发送到index.html?

此处所述,没有解决方案 可以在每台服务器上运行,并且已经为此服务器进行了配置。

但是我不知道SCP在HTML5应用程序中使用哪种服务器?

在" neo-app.json"中,我配置了:

" welcomeFile":" index.html",
   " sendWelcomeFileRedirect":是

但这不适用于动态路由。 有人知道如何解决这个问题吗?

最好的问候

克里斯

screenroute.jpg (27.2 kB)
4条回答
Nan4612
2020-09-16 12:48

克里斯托弗,你好

在Neo应用程序中,您无法为Angular指定错误页面。 在SAPUI5中,您可以捕获应用程序上的错误页面,因为实现了一项标准功能,即当一个页面具有在您的应用程序manifest.json中绕过了导航路线。 但这是特定于SAPUI5应用程序的。

Neo中的角度应用程序仅使用neo-app.json,并且当输入无效路径时,您无权访问http服务器来创建自己的逻辑-因此没有其他方法。

绕过它的唯一方法是在Neo中以更加可控的方式为应用程序提供服务-例如Java应用程序。

有CF选项,您可以在其中以所需的任何方式为应用程序提供服务,包括NodeJS。

您可以通过依次在Angular上实施哈希位置策略来避免404错误 避免路径后缀,因此您的应用将永远不会允许路径。 相反,routeLink将打开类似"#!/start"的内容。 这与SAPUI5处理路由的方式相同,并且比在URL中简单地输入相对路径更"优雅"。

但是,当在URL上输入无效路径(例如"/img/start"而不是"#!/start")时,仍然会出现404错误。

如果您正在使用 app-routing.module.ts ,请按照以下方法配置应用程序:

 ...
 从'@ angular/common'导入{APP_BASE_HREF,HashLocationStrategy,LocationStrategy};
 ...

 @NgModule({
   导入:[RouterModule.forRoot(routes)],
   导出:[RouterModule],
   提供者:[
     {提供:APP_BASE_HREF,useValue:"!"  },
     {提供:LocationStrategy,useClass:HashLocationStrategy},
   ]
 })
 

此致,
Ivan

一周热门 更多>