这个问题可能是因为ASP.NET使用的是后端路由,而angular使用的是前端路由,两者不兼容导致的。解决方法是在ASP.NET中添加一个路由,将所有请求都指向angular的index.html文件即可。
具体的代码实现如下:
在ASP.NET的Startup.cs文件中添加以下代码:
app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == 404 &&
!Path.HasExtension(context.Request.Path.Value) &&
!context.Request.Path.Value.StartsWith("/api/"))
{
context.Request.Path = "/index.html";
await next();
}
});
这段代码的作用是检查当前请求是否是一个静态资源,如果不是则将请求路径重定向到angular的index.html文件。
然后在angular的index.html文件中添加以下代码:
这段代码的作用是指定angular的基本URL,以保证路由能够正常工作。
这样就可以解决ASP .NET与angular结合使用时刷新路由时HTML无法加载的问题。