# API图片本地化功能

此功能用于将API返回的远程图片链接下载到本地并替换成本地路径，方便生成的静态站点完全脱离原始服务器。

## 功能概述

1. 在Nuxt静态站点生成完成后，处理所有API响应JSON文件
2. 自动识别数据中的图片URL字段并下载图片到本地
3. 替换JSON数据中的远程URL为本地路径
4. 确保静态生成的网站能完全离线运行，所有图片资源都在本地

## 使用方法

### 基本使用

直接使用以下命令生成静态站点并本地化图片：

```bash
npm run generate:localize
```

这个命令会：
1. 运行标准的`nuxt generate`生成静态站点
2. 运行图片本地化脚本处理API数据中的图片URL

### 只处理图片

如果你已经生成了静态站点，只需要处理图片：

```bash
npm run localize-images
```

## 自定义配置

### 支持的图片字段

默认情况下，系统会查找以下字段名称中的图片URL：
- image
- imageUrl
- thumbnail
- cover
- avatar
- photo
- src

如需自定义，可以在`scripts/localize-images.mjs`中修改`localizeImages`函数的默认参数。

### 图片保存位置

默认情况下，下载的图片会保存到`public/images/remote`目录，网站访问路径为`/images/remote/[图片文件名]`。

## 工作原理

1. Nuxt先正常执行静态生成过程，将API数据缓存到`.output/server/api`目录下
2. 脚本`scripts/localize-images.mjs`在生成完成后执行，扫描并处理缓存的JSON文件
3. 识别并下载所有图片到`public/images/remote`目录
4. 更新JSON响应文件，将远程图片URL替换为本地路径

## 注意事项

1. 此方法不需要修改源代码，完全在构建后处理
2. 下载的图片使用URL的MD5哈希作为文件名，确保相同URL的图片只下载一次
3. 如果图片下载失败，会保留原始URL，不会破坏网站功能
4. 图片本地化过程会在控制台输出详细日志

## 常见问题

### 生成后图片仍然是远程链接

检查以下几点：
1. 确认使用了`npm run generate:localize`而不是`npm run generate`
2. 检查控制台输出中是否有错误信息
3. 检查`public/images/remote`目录是否已创建并包含图片

### 图片下载失败

可能的原因：
1. 网络问题，无法访问原始图片URL
2. 原始URL返回错误，如404或403
3. 目标目录没有写入权限

解决方法：
1. 检查网络连接和图片URL是否可访问
2. 确保目标目录有写入权限
3. 手动修复失败的图片URL 