asp.net 在本地为React和C# app使用相同的域

a5g8bdjr  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(136)

我使用ASP.NET React Template创建了一个带有React前端的ASP.NET Core应用程序。当我运行应用程序时,ASP.NET API将在端口7276上运行,而React应用程序将在端口5173上运行。这意味着我不能使用React应用程序的相对URL指向API。例如,
/api/auth/login
......不起作用。我必须做:
https://localhost:7276/api/auth/login
.相反(当部署到云时,此问题如何影响应用程序,不在此问题的范围内)。
我当然可以使用完整的URL,但我觉得这不应该是必要的。此外,根据这篇关于C# React应用程序的BFF教程(基于旧模板),它似乎应该使用相对链接。
有没有一种方法可以配置ASP.NET Core React应用程序,以便在React部分中调用相对URL,将针对API?

hec6srdp

hec6srdp1#

新的模板使用了一个开发环境的代理。这个代理运行在前端节点中,并在vite.config.js中配置。代理将把用于后端的流量代理到运行在端口7276上的asp.net,所以你永远不必引用该端口。
因此,实际上您可以使用https://localhost:5173/api/auth/login或相对URL。
但是,默认情况下,代理仅为WheatherForeCast控制器配置,因此您必须将控制器路径添加到代理配置中。

// vite.config.js
server: {
     proxy: {
         '^/weatherforecast': {  // <-- add or replace your paths
             target: 'https://localhost:7276/',
             secure: false
         }
     },
     port: 5173,
     https: {
         key: fs.readFileSync(keyFilePath),
         cert: fs.readFileSync(certFilePath),
     }
 }

字符串

相关问题