Next.js 14本地图片加载失败:证书过期错误求助
解决Next.js 14本地图片加载失败(证书过期错误)的方法
- 检查本地代理/VPN:如果正在使用代理或翻墙工具,其内置证书可能已过期。尝试关闭代理,或更新代理工具的证书后再重启项目。
- 更新系统根证书:
- Windows:打开「证书管理器」(搜索
certmgr.msc),展开「受信任的根证书颁发机构」,检查是否有过期的证书,右键删除后重新获取最新根证书。 - macOS:打开「钥匙串访问」,切换到「系统」>「证书」,筛选过期证书并删除,然后重启系统。
- Windows:打开「证书管理器」(搜索
- 临时关闭图片优化排查:在
next.config.js中添加以下配置,关闭Next.js图片优化功能,验证是否是优化过程中的证书问题:
重启项目后如果图片正常加载,说明问题出在图片优化的fetch环节,可针对性调整优化配置。module.exports = { images: { unoptimized: true, }, } - 检查图片源域名证书:直接在浏览器中访问无法加载的图片URL,查看地址栏的证书状态。如果图片源域名本身证书过期,联系域名持有者更新证书;若Vercel正常加载,可能是本地网络解析到了旧服务器,需进一步排查DNS。
- 升级Node.js版本:错误涉及Node.js内置的
undici库,旧版本可能存在证书处理bug。升级到Node.js最新稳定版(建议18.x或20.x)后重新启动项目。 - 清除本地DNS缓存:
- Windows:执行命令
ipconfig /flushdns - macOS:执行命令
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Linux:执行命令
sudo systemd-resolve --flush-caches
- Windows:执行命令
- 检查本地hosts文件:打开系统hosts文件(Windows路径
C:\Windows\System32\drivers\etc\hosts,macOS/Linux路径/etc/hosts),查看是否有图片源域名的自定义IP映射,若有则注释或删除该条目,保存后重启项目。
内容的提问来源于stack exchange,提问作者m1771vw
相关产品推荐
相关产品推荐

