Asp.net core 具有dotNet核心的深度链接单页应用程序
我正在使用一个dotNet核心项目来托管Angular2应用程序。我在深度链接URL方面有问题 例如,当我最初浏览到时,我得到一个404错误,因为在应用程序/仪表板上没有任何服务。我想实际加载index.html(angular应用程序),然后让路由将我带到应用程序/仪表板 如果我得到404并且URL没有扩展名,我将使用下面的代码重定向到index.htmlAsp.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
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创建的,但应该适用于当前版本,并且很少或没有更改