Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将.NET核心环境传递到React.JS应用程序_Javascript_.net_Reactjs_Asp.net Core_Featuretoggle - Fatal编程技术网

Javascript 将.NET核心环境传递到React.JS应用程序

Javascript 将.NET核心环境传递到React.JS应用程序,javascript,.net,reactjs,asp.net-core,featuretoggle,Javascript,.net,Reactjs,Asp.net Core,Featuretoggle,使用.NET Core,在Startup.cs中,您可以访问IHostingEnvironment,从中可以获得与服务器上设置的ASPNETCORE_环境变量值相对应的EnvironmentName。这对于打开/关闭各种功能以及使用特定于环境的配置非常有用。但是,如果前端都是React.JS,有没有一种方法可以向下传递该值,以便前端也能了解它的环境?我可以想出一些可能的方法,但它们似乎有点老套。这方面的最佳实践是什么?在呈现将承载React应用程序的页面时,将环境变量添加为隐藏字段,例如 @pa

使用.NET Core,在Startup.cs中,您可以访问IHostingEnvironment,从中可以获得与服务器上设置的ASPNETCORE_环境变量值相对应的EnvironmentName。这对于打开/关闭各种功能以及使用特定于环境的配置非常有用。但是,如果前端都是React.JS,有没有一种方法可以向下传递该值,以便前端也能了解它的环境?我可以想出一些可能的方法,但它们似乎有点老套。这方面的最佳实践是什么?

在呈现将承载React应用程序的页面时,将环境变量添加为隐藏字段,例如

@page
@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv

<input id="hostingEnv" 
       type="hidden" 
       value=@hostingEnv.EnvironmentName />

<div id="appRoot"></div>

至于这是否是“最佳实践”,没有最佳实践,只有良好实践!然而,这种方法对我来说是有效的,不过正如评论人士所说,当然还有其他方法(例如,通过单独的web请求)。

可以创建一个API端点,React应用程序可以查询此信息。询问最佳做法只会导致主观回答。具体点。你说你可以想出一些方法……也许告诉我们这些方法,或者向我们展示你已经尝试过的方法。这与我的想法一致,但这是一种比我想象的更优雅的方法,谢谢你的帮助。没问题@snappymcsnap。很高兴我能帮上忙:)如果所有文件都在ClientApp文件夹中,而index.html页面不是编译页面,这将如何工作?我们是否可以重新构建编译静态站点的npm构建,以使用.cshtml页面作为第一个页面?
const hostingEnv = document.getElementById('hostingEnv').value