You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js中remotePatterns通配符为何对特定图片失效?

问题:Next.js Image通配符配置为何对特定域名路径失效?

我使用newsapi.org结合Next.js Image组件加载API返回的图片,在next.config.js中配置了允许所有域名的图片资源,大部分域名的图片都能正常加载,但遇到了特定图片的src属性无效错误,推测这和域名后.com/紧跟的点有关。我不需要解决办法(修改特定配置即可修复),只想搞懂为什么通配符规则对这个特定图片不起作用。

报错信息

Error: Invalid src prop (https://www.si.com/.image/ar_1.91%2Cc_fill%2Ccs_srgb%2Cfl_progressive%2Cg_faces:center%2Cq_auto:good%2Cw_1200/MTk2ODA2NjcwMTU0NzM2NzAy/dawn-staley.jpg) on `next/image`, hostname "www.si.com" is not configured under images in your `next.config.js`
See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host

初始next.config.js配置

const nextConfig = {
  reactStrictMode: true,
  images: {
    remotePatterns: [
      {
        protocol: "https",
        hostname: "**",
      }
    ],
  },
};

尝试与验证

我尝试给pathname添加通配符(如/**),但问题依然存在。而单独添加以下配置后,图片就能正常加载:

{
  protocol: "https",
  hostname: "www.si.com",
  port: "",
  pathname: "/.image/**",
}

原因分析

  1. glob匹配逻辑局限性:Next.js的remotePatterns中,hostname: "**"的通配符匹配并非完全覆盖所有场景。当目标URL的路径以/.开头时,系统的路径匹配逻辑可能出现异常,导致通配符规则未被正确触发,反而误判主机未配置。
  2. 错误提示不准确:实际问题可能出在路径匹配上,但报错信息错误指向了hostname未配置。默认情况下remotePatterns的pathname为/**,理论上应匹配任意路径,但/.image/这类特殊格式的路径可能绕过了通配符匹配。
  3. 匹配优先级问题:明确的主机+路径配置优先级高于通配符规则,当通配符规则无法匹配特殊路径格式时,需要显式配置才能生效。

内容的提问来源于stack exchange,提问作者DumDeeDum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:29:55