【发布时间】:2020-11-27 10:34:28
【问题描述】:
我正在尝试制作一个应用程序,它可以通过一个后端托管两个 SPA。我已按照说明创建React app with .NET Core。这非常有效。
然后我将配置更改为start the .NET Core and React apps separately。也没问题。
但是,我尝试按照hosting multiple SPAs under different subroues 上的指南进行操作。突然间,我的脚本得到了 gettig 404:
这是我的Configure 方法:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
app.Map("/reactapp", ra => {
ra.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseProxyToSpaDevelopmentServer("http://localhost:3000");
}
});
});
}
各个 HTTP 调用似乎几乎相同,除了 /reactapp 路径。我究竟做错了什么? .NET 端是否需要任何其他配置?或者我应该在 React 应用程序中更改某些内容(例如:在 React 路由器中)?
【问题讨论】:
-
可以分享一下你的客户端app文件夹结构吗?两个react app都在同一个文件夹里面ClientApp是哪个路径?通常,我们将创建两个中间件来将不同的客户端应用程序与其自己的路径相匹配,如answer 所示。
-
目前没有两个 React 应用。 ClientApp 文件夹中仍然只有一个应用程序,我没有对其进行任何更改。我所做的所有更改都在我的问题中进行了描述(使用
UseProxyToSpaDevelopmentServer,然后使用app.Map("/reactapp", ...)
标签: c# reactjs asp.net-core