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

MAUI Blazor Android平台加载本地资源报Not allowed to load local resource错误

问题原因

Android平台Blazor WebView默认启用安全限制,禁止直接加载file://协议指向的外部存储、应用私有目录下的本地文件,因此会抛出该报错。

解决方案

根据你使用的资源类型选择对应方案即可:

  • 场景1:打包到APP内的静态图片资源
    直接将图片放到Blazor的wwwroot目录,或者MAUI项目的Resources/Raw目录下(需将文件生成操作设置为MauiAsset),直接用相对路径引用即可,示例:
    <img src="/img/0.jpg" alt="静态图片">
    
  • 场景2:动态生成/下载的本地图片(如拍照输出、用户下载到本地的图片)
    将本地文件转成Base64编码后绑定到img的src属性,示例C#代码:
    // 读取本地文件字节流,需先申请对应存储权限
    var fileBytes = await File.ReadAllBytesAsync("/sdcard/0.jpg");
    var base64Str = Convert.ToBase64String(fileBytes);
    // 按图片格式拼接Base64前缀,此处以jpeg为例
    string imgSrc = $"data:image/jpeg;base64,{base64Str}";
    
    前端绑定代码:
    <img src="@imgSrc" alt="本地图片">
    
  • 方案3:修改WebView配置放开限制(仅建议测试环境使用,存在安全风险)
    在Platforms/Android/MainActivity.cs的OnCreate方法中添加如下配置:
    blazorWebView.Settings.AllowFileAccess = true;
    blazorWebView.Settings.AllowContentAccess = true;
    
    配置后即可直接用file://路径加载本地资源。

提示:如果需要读取外部存储路径下的文件,需提前在AndroidManifest.xml中声明READ_EXTERNAL_STORAGE权限,且运行时要动态申请用户授权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:39:01