我想通过根路径/
提供我的Angular应用程序,并通过/api/*
提供REST API。对于Angular路由,除了对现有文件(例如媒体文件)的请求和我的API控制器路由之外,我必须将所有请求都重定向到/index.html。
[下面的Startup.cs
表示它即将开始工作:
以下内容无效:直接刷新或直接打开http://localhost:5000/home将以404结尾。我想/home
未重定向到index.html。我在这里想念的是什么?
public class Startup
{
private readonly IWebHostEnvironment _webHostEnvironment;
public Startup(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddSpaStaticFiles(options =>
{
options.RootPath = "wwwroot";
});
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseDefaultFiles();
app.UseSpaStaticFiles();
app.UseCors();
app.UseSwagger();
app.UseSwaggerUI(c => { /*...*/ });
app.UseRouting();
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
}
}
您缺少SPA托管的一件事:
app.UseSpa(spa =>
{
// To learn more about options for serving an Angular SPA from ASP.NET Core,
// see https://go.microsoft.com/fwlink/?linkid=864501
});
通过返回单页应用程序(SPA)的默认页面来处理中间件链中此刻的所有请求。
此中间件应放在链的后面,以便优先于用于服务静态文件,MVC操作等的其他中间件。