Hanye官网
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

README-image-localization.md 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # API图片本地化功能
  2. 此功能用于将API返回的远程图片链接下载到本地并替换成本地路径,方便生成的静态站点完全脱离原始服务器。
  3. ## 功能概述
  4. 1. 在Nuxt静态站点生成完成后,处理所有API响应JSON文件
  5. 2. 自动识别数据中的图片URL字段并下载图片到本地
  6. 3. 替换JSON数据中的远程URL为本地路径
  7. 4. 确保静态生成的网站能完全离线运行,所有图片资源都在本地
  8. ## 使用方法
  9. ### 基本使用
  10. 直接使用以下命令生成静态站点并本地化图片:
  11. ```bash
  12. npm run generate:localize
  13. ```
  14. 这个命令会:
  15. 1. 运行标准的`nuxt generate`生成静态站点
  16. 2. 运行图片本地化脚本处理API数据中的图片URL
  17. ### 只处理图片
  18. 如果你已经生成了静态站点,只需要处理图片:
  19. ```bash
  20. npm run localize-images
  21. ```
  22. ## 自定义配置
  23. ### 支持的图片字段
  24. 默认情况下,系统会查找以下字段名称中的图片URL:
  25. - image
  26. - imageUrl
  27. - thumbnail
  28. - cover
  29. - avatar
  30. - photo
  31. - src
  32. 如需自定义,可以在`scripts/localize-images.mjs`中修改`localizeImages`函数的默认参数。
  33. ### 图片保存位置
  34. 默认情况下,下载的图片会保存到`public/images/remote`目录,网站访问路径为`/images/remote/[图片文件名]`。
  35. ## 工作原理
  36. 1. Nuxt先正常执行静态生成过程,将API数据缓存到`.output/server/api`目录下
  37. 2. 脚本`scripts/localize-images.mjs`在生成完成后执行,扫描并处理缓存的JSON文件
  38. 3. 识别并下载所有图片到`public/images/remote`目录
  39. 4. 更新JSON响应文件,将远程图片URL替换为本地路径
  40. ## 注意事项
  41. 1. 此方法不需要修改源代码,完全在构建后处理
  42. 2. 下载的图片使用URL的MD5哈希作为文件名,确保相同URL的图片只下载一次
  43. 3. 如果图片下载失败,会保留原始URL,不会破坏网站功能
  44. 4. 图片本地化过程会在控制台输出详细日志
  45. ## 常见问题
  46. ### 生成后图片仍然是远程链接
  47. 检查以下几点:
  48. 1. 确认使用了`npm run generate:localize`而不是`npm run generate`
  49. 2. 检查控制台输出中是否有错误信息
  50. 3. 检查`public/images/remote`目录是否已创建并包含图片
  51. ### 图片下载失败
  52. 可能的原因:
  53. 1. 网络问题,无法访问原始图片URL
  54. 2. 原始URL返回错误,如404或403
  55. 3. 目标目录没有写入权限
  56. 解决方法:
  57. 1. 检查网络连接和图片URL是否可访问
  58. 2. 确保目标目录有写入权限
  59. 3. 手动修复失败的图片URL