该覆盖功能由 OpenNext 使用,更具体地说,是由图像服务器用于从自定义源加载图像。图像不会与图像服务器捆绑,而是从覆盖配置中指定的源加载。
此功能仅用于内部图像(即不带主机的 src)。外部源已由图像服务器处理。
如果您想更好地了解如何实现自己的 ImageLoader,最简单的方法是查看现有的内置 ImageLoader (opens in a new tab)。
内置 ImageLoader
s3
S3 ImageLoader 将从 S3 存储桶加载图像。如果您在配置中未提供任何 ImageLoader,则默认使用此加载器。
它使用 @aws-sdk/client-s3
与 S3 交互。
要求
- 您需要向服务器提供
BUCKET_KEY_PREFIX
和BUCKET_NAME
环境变量。
s3-lite
s3-lite
ImageLoader 将从 S3 存储桶加载图像。它使用 aws4fetch
与 S3 交互。
要求
- 您需要向服务器提供
BUCKET_KEY_PREFIX
和BUCKET_NAME
环境变量。 - 还可以提供
BUCKET_REGION
。它会回退到AWS_REGION
??AWS_DEFAULT_REGION
。AWS 应会自动设置此值。您可以在 AWS Lambda 文档中了解更多 (opens in a new tab)。
host
Host ImageLoader 将从主机加载图像。 此实现将直接从主机获取图像。
要求
主机应通过请求头提供,可以是 X-Forwarded-Host
或 Host
头。
fs-dev
FsDev ImageLoader 是一个简单的实现,它从 .open-next/assets
文件夹加载图像并使用文件系统与之交互。仅适用于开发目的。
dummy(虚拟)
Dummy ImageLoader 是一个会抛出异常的虚拟实现。它不应该被使用。