我目前正在开发.NET Standard 2.1 Blazor WebAssembly应用程序。我尝试加载不同的应用程序设置。{Environment} .json配置到我的Window名称空间(JavaScript)。
因此,我关注这篇博客文章:
https://jkdev.me/blazor-appsettings/
到目前为止很好:我在wwwroot目录中添加了3个appsettings。*。json文件:
appsettings.json:
{
"App": {
"Message": "Hello World!"
}
}
appsettings.Development.json:
{
"App": {
"Environment": "Development"
}
}
appsettings.Staging.json:
{
"App": {
"Environment": "Staging"
}
}
在program.cs主要方法中,我将建立新的配置设置,如下所示:
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>
不幸的是,此编码无法正常工作-我总是收到错误消息:
您知道如何正确覆盖JavaScript中的Blazor.start引导过程吗?
不幸的是,目前还没有太多的文档。
您知道如何在Blazor WASM中加载不同的appsettings。*。json配置吗?
答案 0 :(得分:1)
应用设置是针对每个环境的。这意味着您需要通过设置 ASPNETCORE_ENVIRONMENT 环境变量或 blazor-environment 响应标头来设置服务器端的环境变量:https://docs.microsoft.com/en-us/aspnet/core/blazor/fundamentals/environments?view=aspnetcore-3.1
Blazor Wasm启动脚本将加载与 blazor-environment 相对应的 appsettings.json 和 appsettings。{Environment} .json 文件。接收WebAssemblyHostBuilder.Configuration
并在其文件中填充数据。
然后可以配置到组件,服务或js。
https://docs.microsoft.com/en-us/aspnet/core/blazor/fundamentals/configuration?view=aspnetcore-3.1