You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署Blazor FluentUI后FluentIcons显示异常及SSL错误排查

解决Blazor FluentUI图标在Azure部署后无法显示的问题

核心问题定位

从你提供的堆栈跟踪和测试结果可以明确:虽然配置了本地发布图标资产,但Azure环境中的组件仍尝试通过网络请求拉取图标资源,被严格的网络规则拦截后,出现了SSL连接失败和403错误。本地运行正常是因为本地无网络限制,且本地发布的资产能被正确访问。

方案一:放行必要的外部资源(若需保留网络拉取逻辑)

如果不想修改代码,仅通过调整网络规则解决,需要允许Azure应用服务的出站流量访问以下域名:

  • *.cdn.office.net:Fluent UI图标默认的CDN源,组件降级逻辑会指向该地址
  • raw.githubusercontent.com:部分旧版本组件会从GitHub仓库拉取图标资源

方案二:强制使用本地发布的图标资产(推荐,彻底消除网络依赖)

既然你已经开启了<PublishFluentIconAssets>true</PublishFluentIconAssets>,按以下步骤确保组件使用本地资产:

  1. 验证发布资产是否存在:部署完成后,检查Azure应用服务的_content/Microsoft.Fast.Components.FluentUI/icons目录下,是否存在你配置的16/24/48尺寸、Filled/Regular变体的图标文件。若缺失,重新发布项目,确保发布流程包含资产文件。
  2. 替换资产服务为本地版本:在Program.cs中修改配置,强制组件使用本地文件服务而非HTTP服务:
LibraryConfiguration config = new(ConfigurationGenerator.GetIconConfiguration(), ConfigurationGenerator.GetEmojiConfiguration());
builder.Services.AddFluentUIComponents(config)
    .AddStaticAssetService<LocalStaticAssetService>(); // 添加该行替换默认的HTTP资产服务
  1. 确认基础路径配置:在_Host.cshtml中检查<base href="~/" />是否正确,若应用部署在虚拟目录下,需将href调整为对应路径,避免组件无法定位本地资产。

额外排查建议

  • 升级NuGet包:使用最新版的Microsoft.Fast.Components.FluentUI,旧版本可能存在本地资产发布的bug
  • 清理Azure缓存:部署缓存可能导致资产未更新,可在应用服务的「高级工具(Kudu)」中清理站点缓存
  • 核实出站规则:若问题仍存在,联系Azure实例管理员检查出站防火墙是否拦截了上述域名

内容的提问来源于stack exchange,提问作者Qwertz_mcc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:44:54