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

Expo无法加载本地assets文件夹内图片,缺失哪些配置项?

配置修正方案

1. 配置静态资源托管路径

你看到的200状态是Expo开发服务返回的默认占位资源,并非你本地的实际图片,原因是Expo默认不会把项目根目录的assets文件夹作为静态资源目录对外暴露,需要手动修改app.json配置:

{
  "expo": {
    "web": {
      "staticPath": "./assets"
    },
    "assets": ["./assets"]
  }
}

配置修改后需要重启Expo开发服务生效。

2. 调整图片uri写法

配置完成后assets已经被设为静态资源根目录,uri不需要再加/assets前缀:

render(){
    // 原路径为/assets/book/cover.png,修改后直接取资源相对路径即可
    return <Image source={{uri: '/book/cover.png'}}></Image>
}

如果数据库中存储的路径已经固定带/assets前缀,可以在代码中做截取处理:
const finalUri = dbImgPath.replace('/assets', '')

3. 原生端兼容(安卓/iOS)

如果应用需要运行在原生端,无法直接用相对uri加载包内assets资源,需要借助expo-asset模块解析路径:
首先安装依赖:
npx expo install expo-asset
代码中调用解析方法获取实际可访问的uri:

import { Asset } from 'expo-asset';

const getAssetUri = async (dbPath) => {
  const targetAsset = Asset.fromURI(dbPath);
  await targetAsset.downloadAsync();
  return targetAsset.uri;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:00:01