Как работать с несколькими SPA-приложениями в ASP.NET Core - PullRequest
0 голосов
/ 06 июня 2019

У меня есть приложение ASP.NET Core Web API, я хочу обслуживать два приложения Angular, одно для администратора и одно для пользователей.

В производстве я не использую инструменты углового интерфейса командной строки, поэтому естьтолько некоторые статические файлы двух угловых веб-приложений.

Файлы администратора находятся в /angular/admin, а файлы пользователя - в /angular/user.Итак, как я могу служить им?

Я пробовал несколько вызовов на IServiceCollection.AddSpaStaticFiles, но они перекрывают друг друга.[Из исходного хранилища я обнаружил, что это службы Singleton]

1 Ответ

1 голос
/ 06 июня 2019

Необходимо разделить конвейер промежуточного программного обеспечения приложения на две части и зарегистрировать SPA после настройки MVC

 ...
 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");
      });
  });  

                ```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...