访问世博会资产的正确方法是什么?
我试过这个:
await Asset.loadAsync(require('file:///assets/data/catalog.json'));
错误:
无法解析“file:///assets/data/catalog.json”
然后我尝试了这个:
await Asset.loadAsync(require('../../../assets/data/catalog.json'));
错误:
资产注册表中缺少模块“[object Object]”
然后我尝试了这个:
await Asset.loadAsync('../../../assets/data/catalog.json');
错误:
错误:无法下载文件:错误域=NSURLErrorDomain代码=-1002“不支持的URL”UserInfo={NSErrorFailingURLStringKey=../../../assets/data/catalog.json,NSErrorFailingURLKey=../../ ../assets/data/catalog.json、_NSURLErrorRelatedURLSessionTaskErrorKey=("BackgroundDownloadTask <4AFE570E-3E85-4D12-B9F1-A0C14DA846D0>.<1>")、_NSURLErrorFailingURLSessionTaskErrorKey=BackgroundDownloadTask <4AFE570E-3E85-4D12-B9F1-A0C14DA846D0>.<1>、NSLocalizedDescription=不支持的 URL}
您需要首先将它们添加到metro-config.js,并从
sourceExts
中排除json
config.resolver.assetExts.push("json");
config.resolver.sourceExts = config.resolver.sourceExts.filter(
(ext) => ext !== "json"
);
已确认!
我需要从
.txt
文件夹中读取 assets/
文件。以下是我更新 Metro 配置的方式遵循博览会文档。
config.resolver.assetExts.push("txt");
现在在我的代码库上我可以加载它
const helloAsset = Asset.fromModule(
require("../assets/hello.txt")
);
您可以添加任何您想要的扩展名。