服务Angular spa打破根

Tim*_*Tim 10 single-page-application asp.net-core angular-cli angular javascriptservices

我正在寻找升级现有的asp.net 4.5 mvc网站,它有两个角度应用程序到asp.netcore 2 mvc网站,可能有两个spa.使用Aspnet Javascriptservices和新的角度cli模板.

理想我想举办两个温泉的一个http://mysite/member,另一个在http://mysite/admin

我开始只使用一个members,我最初<base href="/members/" />在index.html中使用(但随后交换使用.angular-cli.json中的baseHref"属性(给出相同的结果)),这一半可以工作.本地调试应用程序时它按预期提供页面和导航,但在控制台中我可以看到zone.js错误.

在此输入图像描述

如果我打开一个新标签并粘贴

http://localhost:50930/**members**/sockjs-node/info?t=1518084503138

然后我得到了正确的回应

{"websocket":true,"origins":["*:*"],"cookie_needed":false,"entropy":2082738399}

如果我将此部署到Azure应用服务(生产),然后导航到

https://mysite.azurewebsites.net/members 然后水疗中心根本没有加载,似乎捆绑的js有index.html,它正在加载它. 在此输入图像描述

有没有人设法使用角度spa模板作为MVC网站路线下的应用程序?我在回购中创建了一张票,但我怀疑它超出了项目的范围https://github.com/aspnet/JavaScriptServices/issues/1518

还创建了一个回购来展示我想要实现的目标 https://github.com/tbertenshaw/MultiSpa

小智 1

您必须将网络服务器配置为始终返回 Angular PWA 的 index.html 页面。

默认情况下,服务器返回错误 404,因为 /members 不存在文件。但是您希望 Angular 来处理路由,因此您必须始终提供 index.html 而不是 404 错误页面。

本文档进一步明确地解释了 aspnet JavaScriptServices:https://github.com/aspnet/JavaScriptServices/tree/dev/src/Microsoft.AspNetCore.SpaServices#routing-helper-mapspafallbackroute