25 lines
914 B
Dart
25 lines
914 B
Dart
import 'package:maibu_satabot_v2/core/consts/http_api_consts.dart';
|
||
|
||
/// 图片地址工具:后端返回的图片路径可能是相对路径(如 /profile/avatar/xxx.jpg),
|
||
/// 直接交给 Image.network 会因缺少 host 抛 "No host specified in URI" 异常。
|
||
/// 此工具负责将相对路径拼接成完整的服务器地址。
|
||
class ImageUrlUtil {
|
||
ImageUrlUtil._();
|
||
|
||
/// 补全图片地址
|
||
/// - 已是完整 http(s) 地址:原样返回
|
||
/// - 以 / 开头的相对路径:拼接 baseUrl
|
||
/// - 其他相对路径:拼接 baseUrl + /
|
||
/// - null 或空:返回 null
|
||
static String? resolve(String? path) {
|
||
if (path == null || path.isEmpty) return null;
|
||
if (path.startsWith('http://') || path.startsWith('https://')) {
|
||
return path;
|
||
}
|
||
if (path.startsWith('/')) {
|
||
return '${HttpApiConsts.baseUrl}$path';
|
||
}
|
||
return '${HttpApiConsts.baseUrl}/$path';
|
||
}
|
||
}
|