如何修改Maui Blazor Hybrid应用当前工作目录至wwwroot路径
在MAUI Blazor Hybrid中获取wwwroot文件夹路径
GetCurrentDirectory()返回系统目录是因为MAUI应用的工作目录默认指向系统路径,而非项目的wwwroot目录。可以通过以下几种方式获取正确的wwwroot路径:
方法一:使用AppContext.BaseDirectory拼接路径
在MAUI项目的任何代码文件(包括共享类、Blazor组件的代码后台)中,都可以通过AppContext.BaseDirectory获取应用的基础部署目录,再拼接wwwroot得到目标路径:
using System.IO; var wwwrootPath = Path.Combine(AppContext.BaseDirectory, "wwwroot");
这个路径在不同平台上会自动适配对应的应用部署目录,确保能正确定位到wwwroot文件夹。
方法二:在Blazor组件中注入IWebAssemblyHostEnvironment
如果是在Blazor组件内获取路径,可以注入IWebAssemblyHostEnvironment并使用其WebRootPath属性,该属性直接指向wwwroot目录:
@inject IWebAssemblyHostEnvironment HostEnv @code { protected override void OnInitialized() { var wwwrootPath = HostEnv.WebRootPath; // 使用路径进行后续操作 } }
确保wwwroot资源正确部署
在使用上述方法前,需要确认wwwroot下的文件配置正确:
- 选中wwwroot内的文件(或整个文件夹)
- 在属性窗口中设置:
- 生成操作:
MauiAsset - 复制到输出目录:
如果较新则复制
- 生成操作:
这样才能保证wwwroot文件夹及其内容被正确打包到应用中,路径定位才会生效。
内容的提问来源于stack exchange,提问作者DaveK
相关产品推荐
相关产品推荐

