Asp.net core 具有dotNet核心的深度链接单页应用程序

Asp.net core 具有dotNet核心的深度链接单页应用程序,asp.net-core,angular2-routing,Asp.net Core,Angular2 Routing,我正在使用一个dotNet核心项目来托管Angular2应用程序。我在深度链接URL方面有问题 例如,当我最初浏览到时,我得到一个404错误,因为在应用程序/仪表板上没有任何服务。我想实际加载index.html(angular应用程序),然后让路由将我带到应用程序/仪表板 如果我得到404并且URL没有扩展名,我将使用下面的代码重定向到index.html app.Use(async (context, next) => { awa

我正在使用一个dotNet核心项目来托管Angular2应用程序。我在深度链接URL方面有问题

例如,当我最初浏览到时,我得到一个404错误,因为在应用程序/仪表板上没有任何服务。我想实际加载index.html(angular应用程序),然后让路由将我带到应用程序/仪表板

如果我得到404并且URL没有扩展名,我将使用下面的代码重定向到index.html

app.Use(async (context, next) =>
            {
                await next();

                if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value))
                {
                    context.Request.Path = "/index.html"; 
                    await next();
                }
            });
当我有一个包含JSON参数的路由时,这将不起作用,例如:

My if语句忽略具有扩展名和路径的请求。HasExtension在此路径上抛出和ArgumentException。路径在服务器端解析为:

“/app/repairReturnListing;筛选器={\'Status\':[\'AWP\']}”

我删除了“HasExtension”条件,然后在查找我没有托管的映射文件时出现了很多控制台错误。像这样:

无法分析源映射:

我在“网络”选项卡中没有这些错误。我想这是用来调试的

我的angular2应用程序使用HTML5路由。我使用静态文件为angular2应用程序提供服务。我有一个webApi控制器,它返回一些配置数据(其余数据由另一个webApi项目返回)

等待404和重定向看起来像是一种变通方法,甚至不起作用。
有什么建议吗?

请查看ng2 kestrel appserver

这正是你想要的。它是为RC2创建的,但应该适用于当前版本,并且很少或没有更改