uni-app ios打包自定义基座运行后,<image>标签读取不到本地的临时图片地址,报404 Not Found

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app ios打包自定义基座运行后,<image>标签读取不到本地的临时图片地址,报404 Not Found

开发环境 版本号 项目创建方式
Windows 17763.5329 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.98

手机系统:iOS

手机系统版本号:iOS 12.4

手机厂商:苹果

手机机型:iPhone6iPhone17

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:
<image src="file:///var/mobile/Containers/Data/Application/60D13A01-9614-4A3E-9181-EBB37C7E15C2/Library/Caches/galleryImageFolder/IMG_0075.JPG_1705037415.929869_4116.jpg" mode="aspectFill"></image>

操作步骤:

```p
用uni.getImageInfo对IOS沙盒中图片进行转换,取回调函数中的path赋值给image的src

预期结果:

```p
图片正常显示

实际结果:

```p
图片显示异常,一片空白,但是uni.uni.previewImage预览是没问题

bug描述:

```p
image标签加载图片报错404,用uni.uni.previewImage预览是没问题的,代码和报错信息如下:

报错信息:
"errMsg":"GET file:///var/mobile/Containers/Data/Application/60D13A01-9614-4A3E-9181-EBB37C7E15C2/Library/Caches/galleryImageFolder/IMG_0075.JPG_1705037415.929869_4116.jpg 404 (Not Found)

求助,如何能正常显示出来呢?

1 回复

在 uni-app 中,iOS 打包自定义基座后,<image> 标签无法读取本地临时图片地址并报 404 Not Found 错误,可能是由于以下原因导致的:

1. 路径问题

确保你使用的路径是正确的。在 uni-app 中,本地图片路径需要使用相对路径或绝对路径,并且要符合 uni-app 的路径规则。

例如:

<image src="/static/logo.png"></image>

或者使用相对路径:

<image src="../../static/logo.png"></image>

2. 图片未正确打包

在自定义基座打包时,确保图片资源已经被正确打包到项目中。你可以检查打包后的 .ipa 文件,确认图片资源是否包含在内。

3. 临时图片地址问题

如果你使用的是本地临时图片地址(例如通过 uni.chooseImage 选择的图片),确保你使用的是正确的临时路径。在 iOS 上,临时图片路径可能需要使用 wxfile://file:// 前缀。

例如:

uni.chooseImage({
  success: function (res) {
    var tempFilePaths = res.tempFilePaths;
    // 使用 tempFilePaths[0] 作为图片路径
    this.imageSrc = tempFilePaths[0];
  }
});

在模板中使用:

<image :src="imageSrc"></image>

4. 权限问题

确保你的应用有权限访问本地文件系统。在 iOS 上,可能需要配置相应的权限。

5. 自定义基座配置

在自定义基座中,可能需要配置一些特定的设置来支持本地图片的加载。检查你的自定义基座配置文件,确保没有遗漏相关配置。

6. 检查控制台日志

在 Xcode 中运行项目时,查看控制台日志,可能会有更详细的错误信息,帮助你定位问题。

7. 使用 uni.getImageInfo

如果你仍然遇到问题,可以尝试使用 uni.getImageInfo 来获取图片信息,并确保图片路径是正确的。

例如:

uni.getImageInfo({
  src: 'your_image_path',
  success: function (res) {
    console.log(res.path); // 确认图片路径
  }
});

8. 重新编译

有时候,重新编译项目可以解决一些路径或资源加载的问题。

9. 使用网络图片测试

如果本地图片仍然无法加载,可以尝试使用网络图片进行测试,以确认是否是本地图片路径的问题。

例如:

<image src="https://example.com/path/to/your/image.png"></image>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!