首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单独的ReactJS客户端前端应用程序与ASP.NET核心后端API合并?

将单独的ReactJS客户端前端应用程序与ASP.NET核心后端API合并?
EN

Stack Overflow用户
提问于 2019-06-15 06:27:06
回答 1查看 1.6K关注 0票数 0

我正在开发一个带有ASP.NET核心后端的完整堆栈web应用程序,它为REST & GraphQL API提供服务。Visual中的.NET核心应用程序的结构如下:

代码语言:javascript
复制
Backend.API: the API portion of the project that contains all the controllers and GraphQL query/mutation definitions that the front-end application consumes.  
Backend.Core: the portion of the back-end that defines all the user & application models used by the Backend.Data portion.  
Backend.Data: interacts with the database and defines all the repositories that the Backend.API portion uses when returning data for GraphQL queries, etc.

后端.NET核心app由前端ReactJS应用程序使用,该应用程序完全独立于C#项目(作为单独的ReactJS应用程序创建)。

我不想使用ReactJS ASP.NET核心模板,因为我希望在前端和后端之间保持关注点的分离,这样的模板就会变得模糊。到目前为止,我已经允许前端ReactJS应用程序使用后端ASP.NET核心API,方法是提供后端启动的本地主机URL (即ReactJS应用程序在localhost:3000上启动,并从localhost上的API端点获取:5437,其中后端是由Visual启动的)。然而,当我想要部署网站时,这两个部分之间的这种分离是不可行的--我需要将前端项目和后端项目结合起来,以便它们在相同的URL下运行。

因此,这就提出了一个问题:将我的独立前端ReactJS应用程序与我的后端ASP.NET Core合并以便它们在一个URL下运行的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-15 18:28:31

如果我在你的位置,我会这么做的:

  1. 我会把Backend.API重命名为Backend.Web
  2. 将我的整个react应用程序移动到wwwroot文件夹中
  3. 创建一个中间件,它将服务于我的React的应用程序index.html页面 : App.Use (context,next) => {context();var path = context.Request.Path.Value;if (!path.StartsWith("/api") & !Path.HasExtension(path)) { context.Request.Path = "/index.html";等待next();});
代码语言:javascript
复制
1. Be sure you have the middleware for default files and static files included in the pipeline:

app.UseDefaultFiles(); app.UseStaticFiles();

  1. Index.html将链接在构建ReactJS应用程序之后创建的JavaScript和CSS。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56607931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档