首页 > 解决方案 > 如何设置 React + .NET Core 应用程序的基本路径

问题描述

我正在开发一个使用 ASP.NET Core 和 React 的应用程序(特别是 create-react-app)。此应用程序将托管在具有不同子目录的多个网站上(例如,一个站点可能在 www.example.com/my-website 托管它,另一个将在 www.example-2.com/my-other-website 托管它,所以我需要能够为每个网站配置基本路径。我还想创建一个只需要更改配置即可在多个站点上工作的构建。

这不适用于 React。Create-react-app 希望我在构建时在 package.json 中设置“主页”,这意味着为每个站点创建单独的构建。而 react-router 要求我设置 basename 属性(例如<BrowserRouter basename='/my-website'>),这再次要求我指定路径。

通常在 ASP.NET 中,我会使用类似<base href="~/" />使基本路径可供客户端使用的方法,但如果页面由 React 呈现,则这不起作用。

我在网上看到的常见解决方案是设置PUBLIC_URL环境变量,可以为每个网站配置不同的,使用dotenv包从文件中设置。但是我已经尝试过了,但由于某种原因它不起作用(没有错误消息,但console.log(process.env.PUBLIC_URL);不打印任何东西)。

当 React 从 ASP.NET 运行时,如何在 React 中设置基本路径,并且可以部署到不同的 URL,而无需每次都创建新的构建?

标签: reactjsasp.net-corereact-router-v4

解决方案


推荐阅读