C# 使用gatsby&;提供多个索引文件;aspnet

C# 使用gatsby&;提供多个索引文件;aspnet,c#,asp.net,.net,asp.net-core,gatsby,C#,Asp.net,.net,Asp.net Core,Gatsby,我使用的是以盖茨比为前端的dotnet core react模板。我有一个aspnet核心的路由问题。如果找不到文件,aspnet将从根目录提供index.html。这在大多数情况下都很好,但是盖茨比生成了多个索引文件——每个“页面”一个: wwwroot: index.html 第二页/ index.html 第三页/ index.html 当用户登陆根目录(/)并在客户端导航时,这种方法可以很好地工作。在页面/文件夹(例如website.com/second page/)中刷

我使用的是以盖茨比为前端的dotnet core react模板。我有一个aspnet核心的路由问题。如果找不到文件,aspnet将从根目录提供index.html。这在大多数情况下都很好,但是盖茨比生成了多个索引文件——每个“页面”一个:

wwwroot:

  • index.html
  • 第二页/
    • index.html
  • 第三页/
    • index.html
当用户登陆根目录(/)并在客户端导航时,这种方法可以很好地工作。在页面/文件夹(例如website.com/second page/)中刷新时,aspnet从根目录返回index.html

所以,我想要相应文件夹的索引文件

这在一些配置中是可能的,还是我必须编写一个自定义中间件

下面是我在Startup.cs中的配置方法:

public void配置(IApplicationBuilder应用程序,IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
app.UseExceptionHandler(“/Error”);
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapControllerRoute(
名称:“默认”,
模式:“{controller}/{action=Index}/{id?}”);
});
app.UseSpa(spa=>
{
spa.Options.SourcePath=“ClientApp”;
if(env.IsDevelopment())
{
spa.UseProxyToSpadDevelopmentServer(“http://localhost:8000/");
}
});
}

删除行
app.UseSpaStaticFiles()从模板代码解决了我的问题