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