Flutter sqflite_common_ffi_web仅远程服务器打开数据库报错求助
问题原因
- 服务器MIME类型配置缺失:sqflite_common_ffi_web依赖WebAssembly(
.wasm)文件实现数据库功能,远程服务器未正确设置.wasm文件的MIME类型为application/wasm,而是默认返回application/octet-stream,浏览器因MIME类型不匹配拒绝加载该文件,导致数据库初始化失败。本地开发环境会自动处理.wasm文件的MIME类型,因此无异常。 - 托管平台默认规则限制:部分静态站点托管平台不会自动识别
.wasm文件的正确MIME类型,需要手动配置文件类型映射才能正常加载。
解决方向
- 给服务器添加
.wasm文件的MIME类型映射,将其指定为application/wasm:- Nginx:在
mime.types中追加application/wasm wasm;,或在站点配置的location块内添加types { application/wasm wasm; } - Apache:在项目根目录的
.htaccess文件中添加AddType application/wasm .wasm - 静态托管平台(如Vercel、Netlify):通过平台配置文件添加映射,比如Netlify用
netlify.toml,Vercel用vercel.json
- Nginx:在
- 确认构建后的
.wasm文件已完整上传到服务器,路径和文件名无错误。
内容的提问来源于stack exchange,提问作者RTamas91
相关产品推荐
相关产品推荐

