我无法部署到 vercel,因为我收到错误:Specified images.domains should be an Array of strings received invalid values

Posted

技术标签:

【中文标题】我无法部署到 vercel,因为我收到错误:Specified images.domains should be an Array of strings received invalid values ()【英文标题】:I cannot deploy to vercel because I get the error: Specified images.domains should be an Array of strings received invalid values () 【发布时间】:2021-07-12 06:12:20 【问题描述】:

当我在 vercel 上部署时出现此错误

发生构建错误 14:34:33.017 错误:指定的 images.domains 应该是接收到无效值的字符串数组 ()。

为了让图像在本地显示在我的屏幕上,我进行了以下设置:

module.exports = 
  env: 
    NEXT_PUBLIC_STRAPI_URL: process.env.NEXT_PUBLIC_STRAPI_URL,
    NEXT_PUBLIC_IMAGES_DOMAIN: process.env.NEXT_PUBLIC_IMAGES_DOMAIN,
  ,
  publicRuntimeConfig: 
    NEXT_PUBLIC_STRAPI_URL: process.env.NEXT_PUBLIC_STRAPI_URL,
    NEXT_PUBLIC_IMAGES_DOMAIN: process.env.NEXT_PUBLIC_IMAGES_DOMAIN,
  ,

  images: 
    deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
    imageSizes: [16, 32, 48, 64, 96],
    domains: [process.env.NEXT_PUBLIC_IMAGES_DOMAIN],
    path: "/_next/image",
    loader: "default",
  ,

  webpack(config) 
    config.module.rules.push(
      test: /\.svg$/,
      use: ["@svgr/webpack"],
    );

    return config;
  ,
;

在我的 env.local 中我放了这个

NEXT_PUBLIC_STRAPI_URL= ...
NEXT_PUBLIC_IMAGES_DOMAIN=localhost

我这样调用我的图像时无法获取

const Potato = ( assets) =>  
 <Image
   src=process.env.NEXT_PUBLIC_STRAPI_URL + assets.hat.svg.url
   width=assets.hat.svg.width
   height=assets.hat.svg.height
 />

在本地我可以看到图像,但是当我在本地运行我的应用程序时,我的 console.log 中也会出现此错误。我不知道如何或为什么。由于我的图像加载得很好。也许这就是 Vercel 不起作用的原因,但我不知道这两者是否相关。

以上所有设置几乎完全是从该视频中复制粘贴的(从第 10 分钟到第 16 分钟观看): youtube

到目前为止我已经尝试过: 在 Vercel 上的环境变量中添加 NEXT_PUBLIC_IMAGES_DOMAIN,并将我的 Heroku 后端名称作为值(就像我为 NEXT_PUBLIC_STRAPI_URL 所做的那样),部署良好,但出现 500 服务器错误。但是我也不知道我应该如何解决这个问题。

【问题讨论】:

【参考方案1】:

由于您使用的是.env.local,因此您无需将env/publicRuntimeConfig 放入您的next.config.js。 You can remove those.

如果您使用默认设置,您也不需要为图像设置pathloader。唯一需要的值是 domains - 然后您当然可以选择 deviceSizesimageSizes

您是正确的,您需要在 Vercel 项目中添加您的 Environment Variables。

【讨论】:

以上是关于我无法部署到 vercel,因为我收到错误:Specified images.domains should be an Array of strings received invalid values的主要内容,如果未能解决你的问题,请参考以下文章

Vercel 巧妙的设置

如何修复 Next.js Vercel 部署模块未找到错误

Vercel中的Nodemailer不在生产中发送电子邮件

使用 getStaticProps() 将 Next.js 部署到 Vercel 的速率限制问题

在 Vercel 上部署的 Nextjs 中的 api 请求出现 504/502 错误

环境变量不适用于带有 Nuxt 的 Vercel