SvelteKit中onnxruntime-web无法找到ort-wasm-simd.wasm路径问题
解决SvelteKit中onnxruntime-web找不到ort-wasm-simd.wasm的问题
- 手动指定onnxruntime资源加载路径
onnxruntime-web默认会从当前页面路由路径加载wasm资源,需要在创建推理会话前显式设置资源根路径。添加以下代码:
import * as ort from 'onnxruntime-web'; // 指向SvelteKit的/static文件夹对应的根路径 ort.env.wasm.wasmPaths = '/';
之后再执行const session = await InferenceSession.create('/sam_onnx_quantized.onnx')即可。
确认静态资源位置
把ort-wasm-simd.wasm及相关onnxruntime wasm文件(如ort-wasm-simd-threaded.wasm)放到项目的/static文件夹下,SvelteKit会自动将这些文件发布到网站根路径,无需保留node_modules里的副本。锁定依赖版本
问题出现在重装依赖后,大概率是onnxruntime-web版本更新导致加载逻辑变化。对比之前正常运行时的package.json,锁定onnxruntime-web的版本:
"onnxruntime-web": "x.x.x"
执行npm install重新安装。
- 适配部署环境的路径设置
如果需要适配不同部署环境(比如生产环境有子路径),可以用SvelteKit的环境变量动态设置路径:
ort.env.wasm.wasmPaths = import.meta.env.BASE_URL;
内容的提问来源于stack exchange,提问作者Nikolay Dyankov
相关产品推荐
相关产品推荐

