将 .NET Core 环境传递给 React.JS 应用程序
Passing .NET Core Environment to React.JS app
使用 .NET Core,在 Startup.cs 中您可以访问 IHostingEnvironment,您可以从中获取与服务器上设置的 ASPNETCORE_ENVIRONMENT 环境变量值相对应的 EnvironmentName。这对于切换各种功能 on/off 以及使用特定于环境的配置非常有用。但是对于一个全 React.JS 的前端,有没有办法将这个值传递下来,以便前端也知道它的环境?我可以想到一些可能的方法,但它们看起来有点老套。这方面的最佳做法是什么?
当您呈现将托管您的 React 应用程序的页面时,将环境变量添加为隐藏字段,例如
@page
@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv
<input id="hostingEnv"
type="hidden"
value=@hostingEnv.EnvironmentName />
<div id="appRoot"></div>
可以找到有关 IHostingEnvironment 的更多信息 here。
然后您可以使用以下代码在您的 React 应用程序中访问该隐藏变量的值:
const hostingEnv = document.getElementById('hostingEnv').value
至于这是否"best practice",没有最好的做法只有好的做法!然而,这种方法对我有用,尽管正如评论者所建议的那样,当然还有其他方法可以做到这一点(例如通过单独的网络请求)。
使用 .NET Core,在 Startup.cs 中您可以访问 IHostingEnvironment,您可以从中获取与服务器上设置的 ASPNETCORE_ENVIRONMENT 环境变量值相对应的 EnvironmentName。这对于切换各种功能 on/off 以及使用特定于环境的配置非常有用。但是对于一个全 React.JS 的前端,有没有办法将这个值传递下来,以便前端也知道它的环境?我可以想到一些可能的方法,但它们看起来有点老套。这方面的最佳做法是什么?
当您呈现将托管您的 React 应用程序的页面时,将环境变量添加为隐藏字段,例如
@page
@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv
<input id="hostingEnv"
type="hidden"
value=@hostingEnv.EnvironmentName />
<div id="appRoot"></div>
可以找到有关 IHostingEnvironment 的更多信息 here。
然后您可以使用以下代码在您的 React 应用程序中访问该隐藏变量的值:
const hostingEnv = document.getElementById('hostingEnv').value
至于这是否"best practice",没有最好的做法只有好的做法!然而,这种方法对我有用,尽管正如评论者所建议的那样,当然还有其他方法可以做到这一点(例如通过单独的网络请求)。