Next.js图片加载报403错误,是否与Midjourney认证有关?
问题分析与解决方案
是的,这个403错误确实和Midjourney的CDN认证机制直接相关,和你Next.js的remotePatterns配置无关——你的配置已经允许了所有HTTPS域名,域名白名单这块没有问题。
核心原因
Midjourney的CDN资源并非公开可自由抓取的,他们的服务器会校验请求的来源信息(比如Referer请求头)或者认证凭证。而Next.js Image组件是通过自身的图片优化服务代理请求上游图片的,这时候发送给Midjourney CDN的请求并没有带上Midjourney要求的合法请求头或认证信息,因此被服务器拒绝,返回403错误。
可行的解决办法
- 改用普通img标签加载:如果你的页面访问环境符合Midjourney的来源校验规则,直接用
<img>标签可能可以正常加载,但这种方式无法利用Next.js的图片优化能力。 - 自行托管图片:将Midjourney的图片下载到自己的服务器或云存储服务(如阿里云OSS、AWS S3等),然后从自己的域名提供图片资源。这是最稳妥的方式,既避免了认证问题,也能正常使用Next.js Image组件的优化功能。
- 自定义请求头(有限可行性):通过Next.js的
rewrites配置或自定义图片加载器,给代理请求添加Midjourney要求的Referer或认证头。但Midjourney的具体校验规则并未公开,这种方式成功率不高,且可能违反其服务条款。
注意事项
Midjourney的服务条款可能禁止未经授权直接抓取和使用其CDN资源,建议先确认相关许可,避免侵权风险。
内容的提问来源于stack exchange,提问作者Gap
相关产品推荐
相关产品推荐

