我有一个 ASP.NET Core Web API 应用程序,我想提供两个 Angular 应用程序,一个用于管理员,一个用于用户。
在生产中,我不使用 angular CLI 工具,所以只有两个 angular web 应用程序的一些静态文件。
管理员文件在/angular/admin,用户文件在/angular/user. 那么,我该如何为他们服务呢?
我尝试了多次调用,IServiceCollection.AddSpaStaticFiles但它们相互覆盖。[从源存储库我发现这是单例服务]
Avi*_*ish 12
您必须将应用程序中间件管道分成两个分支并在设置 MVC 后注册 SPA
...
app.UseMvc(...)
app.Map("/admin",
adminApp =>
{
adminApp.UseSpa(spa =>
{
spa.Options.SourcePath = "angular/admin";
spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "angular", "admin"))
};
if (env.IsDevelopment())
spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
});
});
app.Map("/user",
userApp =>
{
userApp.UseSpa(spa =>
{
spa.Options.SourcePath = "angular/user";
spa.Options.DefaultPageStaticFileOptions = new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "angular", "user"))
};
if (env.IsDevelopment())
spa.UseProxyToSpaDevelopmentServer("http://localhost:4201");
});
});
```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6863 次 |
| 最近记录: |