reactjs - 如何设置 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,而无需每次都创建新的构建?
解决方案
推荐阅读
- json - 展开数组元素,在循环中将字符串附加到每个元素
- python - IBM Data Science:float() 参数必须是字符串或数字,而不是“方法”
- html - HTML 表单方法 POST 更改为 GET 但很少,并且仅在单击的链接上
- python - 是否可以将数据存储在一个键中,一个字典中的另一个键中?
- javascript - 将参数传递给 addEventListener 调用?
- python - 如何在 Tensorflow 中为 VGG16 获取梯度
- java - Java 中带有 cachedHostConnectionPool 的 Source.queue
- reactjs - 生产中的反应应用程序 - 直接请求时链接不起作用,它们仅在反应路由器访问时才起作用
- asynchronous - 您可以从预先生成的数据集中向表异步添加行吗?
- c# - 用于包含特殊字符的正则表达式