我想通过根路径/提供我的Angular应用程序,并通过/ api / *提供其余的api。对于Angular路由,我必须将所有请求重定向到/index.html,除了对现有文件(例如媒体文件)和我的api控制器路由的请求。
下面的startup.cs即将开始工作:
以下内容无效:
我想/ 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操作等的其他中间件。