asp.net core中托管SPA应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net core中托管SPA应用相关的知识,希望对你有一定的参考价值。

参考技术A 假定一个场景,我们需要一个前后端分离的应用,服务端API使用ASP.NET Core开发,前端有两套,一个是用于所有用户的客户端,另一个是给管理员使用的管理后台,使用asp.net core的hosting作为后端+前端的web服务器。应为默认情况下没有开启hosting的spa功能。针对这个,我们可能首先想到的是自定义一个中间件进行处理,当请求特定path,以及静态资源是,加载对应文件夹下的spa应用文件。其实微软早就为我们准备好了这个中间件。这个中间件在: Microsoft.AspNetCore.SpaServices.Extensions 包中。

dotnet new 命令创建项目时,模板就已经内置了 angular和react的spa 模板。新建完成后,可以看到startup启动类中,多出来了两个东西:

直接运行,就可以启动应用程序,就可以看到spa应用程序已经正常工作了。

默认的例子,只hosting 了一个spa应用,回到最初的问题,如果有两个或者多个需要处理呢。这就需要多次配置。

我们来做下多spa的配置。

为了整齐可读性高,我们使用IApplicationBuilder扩展的方式来配置多个SPA应用

最后在 E:\\spa001 和 E:\\spa002 中放置build后的spa应用。启动asp.net core 应用程序,访问appsetting中设置好的对应RouteTemplate,就会打开对应的spa应用程序。spa中请求接口的路径也只需要使用接口的相对路径即可。spa引用的静态资源也会被加载。

以上是关于asp.net core中托管SPA应用的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET Core 应用程序中使用多个 HttpClient 对象

SPA (Aurelia) + ASP.NET Core WebAPI + Google 身份验证

ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式

在 ServiceFabric 中托管旧版 ASP.NET(不是 ASP.NET Core)

ASP.NET Core 托管捆绑包 5 是不是也可以运行 .NET/ASP.NET Core 2.1 应用程序?

ASP.NET Core Web API 身份验证