我正在尝试使用 .net core 和 Angular 2 设置路由,但是路由没有解析,因为它们是由服务器解析的。
我看到的一个解决方案是注册一个默认路由到您的家庭 Controller 或其他东西......但我没有任何 MVC Controller 。
我已将此添加到我的主要组件(并完成所有其他路由器先决条件)
@RouteConfig([
{ path: '/', name: 'Table', component: TableComp, useAsDefault: true },
{ path: '/login', name: 'Login', component: LoginComp }
])
我在 startup.cs 中确实有这些:
在 ConfigureServices() 中
services.AddMvc();
在 Configure() 中
app.UseMvc();
但由于我实际上并没有使用任何 MVC Controller 或注册任何 MVC 路由,所以我不知道如何让我的 Angular 路由在浏览器而不是服务器中解析,以及为什么它们不是只是做这件事...
最佳答案
以下配置应该适合大多数在 .NET Core 中使用客户端路由的项目:
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("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();
}
})
.UseCors("AllowAll")
.UseMvc()
.UseDefaultFiles(options)
.UseStaticFiles();
关于asp.net - 使用 ASP .Net Core(非 mvc)的 Angular 2 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38531904/