为了账号安全,请及时绑定邮箱和手机立即绑定

将不同的 appsettings.json 加载到 Blazor WebAssembly

将不同的 appsettings.json 加载到 Blazor WebAssembly

繁星淼淼 2022-12-09 16:59:15
我目前正在开发 .NET Standard 2.1 Blazor WebAssembly 应用程序。我尝试将不同的 appsettings.{Environment}.json 配置加载到我的 Window 命名空间 (JavaScript) 中。因此,我遵循这篇博文:https://jkdev.me/blazor-appsettings/到目前为止一切顺利:我在我的 wwwroot 目录中添加了 3 个 appsettings.*.json 文件:应用设置.json:{  "App": {    "Message": "Hello World!"  }}appsettings.Development.json:{  "App": {    "Environment": "Development"  }}应用设置.Staging.json:{  "App": {    "Environment": "Staging"  }}在我的 program.cs Main 方法中,我构建了新的配置设置,如下所示:public class Program{    public static async Task Main(string[] args)    {        var builder = WebAssemblyHostBuilder.CreateDefault(args);        builder.RootComponents.Add<App>("app");        ConfigureServices(builder.Services);        await builder.Build().RunAsync();    }    private static void ConfigureServices(IServiceCollection services)    {        services.AddSingleton(             provider =>                 {                     var config = provider.GetService<IConfiguration>();                     return config.GetSection("App").Get<AppConfiguration>();                 });    }}public class AppConfiguration{    public string Environment { get; set; }}进一步,我尝试根据设置的环境变量(在脚本中)加载正确的 appsettings.json,因此我需要像这样覆盖 Blazor 启动过程:<script src="_framework/blazor.webassembly.js" autostart="false"></script><script>    const environmentName = 'Staging';    Blazor.start({        loadBootResource: function(type, name, defaultUri, integrity) {            // Adds a custom HTTP header to the outbound requests            // To retain the default integrity checking behavior, it's necessary to pass through the 'integrity' parameter            return fetch(defaultUri,                {                    cache: 'no-cache',                    integrity: integrity,                    headers: { 'blazor-environment': environmentName }                });        }    });</script>
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

应用程序设置是每个环境。这意味着您需要通过设置ASPNETCORE_ENVIRONMENT环境变量或blazor-environment响应标头在服务器端设置环境变量:https ://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/environments ?view=aspnetcore-3.1

Blazor Wasm 启动脚本将加载与收到的blazor环境对应的 appsettings.json和appsettings.{Environment}.json文件,并在这些文件中填充数据。WebAssemblyHostBuilder.Configuration

然后您可以配置到您的组件、服务或 js。
https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/configuration?view=aspnetcore-3.1


查看完整回答
反对 回复 2022-12-09
  • 1 回答
  • 0 关注
  • 337 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号