在UniApp中,图片预览一直转圈圈(加载中)通常由以下原因导致,可按顺序排查:
1. 图片路径问题
- 网络图片:链接失效、格式不支持或服务器响应慢
- 本地图片:路径错误或使用了错误的路径格式
排查方法:
// 正确的路径示例
// 网络图片
const webImage = 'https://example.com/image.jpg'
// 本地静态图片(放在static目录)
const localImage = '/static/logo.png'
// 使用前建议先测试图片是否能正常显示
<image :src="imageUrl" @error="onImageError"></image>
methods: {
  onImageError(e) {
    console.log('图片加载失败', e)
  }
}
2. 图片格式或大小问题
- 图片格式不被支持
- 图片文件过大(建议压缩到1MB以内)
- 分辨率过高
3. 跨域问题(仅H5端)
- 服务器未配置CORS头
- 解决方案:配置服务器或使用代理
4. 代码逻辑问题
// 错误示例 - 可能缺少文件扩展名
uni.previewImage({
  urls: ['https://example.com/image'], // 缺少.jpg扩展名
  current: 0
})
// 正确写法
uni.previewImage({
  urls: ['https://example.com/image.jpg'],
  current: 0
})
5. 平台差异
- 小程序端:需要配置downloadFile域名
- App端:网络图片需要配置网络权限
快速排查步骤:
- 在<image>组件中先测试图片是否能正常显示
- 检查浏览器控制台/小程序开发工具有无报错
- 尝试更换不同的图片链接测试
- 检查网络连接状态
通常90%的情况都是图片路径错误或网络图片不可访问导致的。