React Native中访问assets文件夹文件的路径问题
解决React Native中加载assets目录下glb文件的问题
先修正import语法错误:你写的
import newModel as ./assets/model.glb是错误的,正确的静态资源导入语法应该用from,不需要重命名的话直接写:import newModel from './assets/model.glb';要是需要重命名才用
as,比如:import { default as newModel } from './assets/model.glb';核对相对路径是否正确:
- 如果Model.js和assets文件夹不在同一层级(比如Model.js在
src/components下,assets在项目根目录),路径要写成../../assets/model.glb - 确保路径里的文件名、文件夹名大小写和实际文件完全一致,React Native对文件名大小写敏感,
Model.glb和model.glb会被识别成不同文件
- 如果Model.js和assets文件夹不在同一层级(比如Model.js在
配置Metro打包器支持glb格式:
React Native默认的Metro配置不包含glb作为可打包的资源后缀,需要修改项目根目录的metro.config.js:const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const customConfig = { resolver: { assetExts: [...getDefaultConfig(__dirname).resolver.assetExts, 'glb'], }, }; module.exports = mergeConfig(getDefaultConfig(__dirname), customConfig);尝试用require替代import:
部分场景下用require加载静态资源更稳定,写法如下:const newModel = require('./assets/model.glb');最后确认文件存在:检查assets目录下确实有
model.glb文件,没有拼写错误或者路径层级错误
内容的提问来源于stack exchange,提问作者Ahmed Malik
相关产品推荐
相关产品推荐

