0

0

Blazor appsettings.json 环境配置方法

幻夢星雲

幻夢星雲

发布时间:2025-12-12 14:52:03

|

805人浏览过

|

来源于php中文网

原创

Blazor Server 依赖 ASPNETCORE_ENVIRONMENT 环境变量自动加载对应 appsettings.{Environment}.json 并覆盖基础配置;Blazor WebAssembly 则在构建时由 MSBuild 的 EnvironmentName 属性决定打包哪个配置文件并重命名为 appsettings.json。

blazor appsettings.json 环境配置方法

Blazor 应用(尤其是 Blazor Server 和 Blazor WebAssembly 从 .NET 6+ 开始)支持通过 appsettings.json 实现环境感知的配置,但具体机制因托管模型不同而有差异。核心原则是:**环境变量决定加载哪个配置文件,而非手动切换文件名**。

Blazor Server:完全兼容 ASP.NET Core 配置体系

Blazor Server 本质是服务端渲染,直接复用 ASP.NET Core 的配置系统,支持多环境配置文件自动合并:

  • 基础文件appsettings.json(所有环境共享)
  • 环境专属文件appsettings.Development.jsonappsettings.Production.json
  • 生效逻辑:运行时根据 ASPNETCORE_ENVIRONMENT 环境变量值(如 Development)自动加载对应文件,且环境文件会覆盖基础文件中同名配置项
  • 使用方式:在 Program.cs 中通过 builder.Configuration 注入,例如 builder.Services.Configure(builder.Configuration.GetSection("MySettings"))

Blazor WebAssembly:客户端配置需主动加载,不依赖环境变量

WebAssembly 运行在浏览器中,无法读取服务器环境变量,因此配置加载是显式、静态的:

  • 默认行为:只加载根目录下的 appsettings.json(开发时)和 appsettings.{Environment}.json(发布后)
  • 环境匹配逻辑:构建/发布时,SDK 根据 MSBuild 属性(如 Production)自动复制对应文件(如 appsettings.Production.json)并重命名为 appsettings.json,覆盖默认文件
  • 手动指定环境:可在 index.html 标签中添加 autostart="false",然后调用 Blazor.start() 并传入 { environment: 'Staging' } —— 但这仅影响 Blazor 自身日志级别等内部行为,不触发配置文件切换
  • 真正生效的配置方式:发布前设置项目文件中的 Staging,或使用 dotnet publish -c Release -p:EnvironmentName=Staging

通用建议:避免硬编码,优先用强类型配置

无论哪种 Blazor 模型,都推荐将配置抽象为 C# 类,提高可维护性与类型安全:

Shopxp购物系统Html版
Shopxp购物系统Html版

一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您

下载
  • 定义配置类,如 public class ApiSettings { public string BaseUrl { get; set; } }
  • appsettings.json 中写入对应结构:"ApiSettings": { "BaseUrl": "https://api.example.com" }
  • 注册强类型绑定:builder.Services.Configure(builder.Configuration.GetSection("ApiSettings"))
  • 在组件中注入 IOptionsIOptionsSnapshot 使用

调试技巧:确认当前加载的配置内容

快速验证配置是否按预期加载:

  • Blazor Server:在 Program.cs 中临时加 Console.WriteLine(builder.Configuration["MyKey"]);
  • Blazor WebAssembly:在 Program.csbuilder.Services.Add...() 前,用 await builder.Configuration.ReloadAsync(); 确保已加载完成,再打印 builder.Configuration.AsEnumerable() 查看全部键值对
  • 浏览器开发者工具中检查网络请求,确认加载的是 appsettings.json 还是 appsettings.Production.json

基本上就这些。关键区别在于:Server 看环境变量自动选,WASM 看构建时指定的 EnvironmentName 静态打包。不复杂但容易忽略细节。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

417

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

310

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

616

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

657

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

471

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

AngularJS教程
AngularJS教程

共24课时 | 2.9万人学习

CSS教程
CSS教程

共754课时 | 22.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号