所以我试着用next/image的组件来显示图像。但是,图像没有被显示。我相信这是因为next/image给了我一个400错误请求。
当我点击该URL时,它显示“The requested resource isn 't a valid image”,这很奇怪,因为在从后端检索图像URL后,我能够下载图像来查看它是否是一个有效的图像,所以这个错误是在图像链接被传递到组件的属性后发生的。基本上,我的请求是正确的,但是next/image和图片url的交互被搞砸了,奇怪的是前几天我也没有这个错误,什么都没改就看到这个错误。
我已经这样配置了next.js配置文件,并且对后端的请求确实检索到了可下载的图像(next/image只是没有正确显示它)。
以下是我的next.js配置文件:
const withPlugins = require('next-compose-plugins');
const withImages = require('next-images');
const nextConfig = {
images: {
domains: [
'url.s3.amazonaws.com',
'url.s3.amazonaws.com',
'url.s3.amazonaws.com',
],
},
};
module.exports = withPlugins([[withImages]], nextConfig);
7条答案
按热度按时间yxyvkwin1#
此问题是由于next.js版本11引起的。此问题已在next@11.0.2-canary.4版本中得到修复。您可以更新版本。问题将得到解决。
zrfyljdw2#
使用加载器功能解决了这个问题。不知道为什么。但是更新版本是最好的选择。
nwlqm0z13#
我已经迟到了,但希望我的回答能对其他人有所帮助。
将域的配置添加到next.config.js中是不够的(仅适用于本地):
对于生产环境,您需要确保您的“下一个”示例获取该配置。
所以在我的情况下,我做了什么使它工作:
使用前
之后
nx7onnlm4#
您是否更新了您的nextjs版本?它似乎10.1.X和更新版本有一些问题... https://github.com/vercel/next.js/issues/23523
1wnzp6jl5#
我不得不添加一个包含
www
前缀的域名到next.config.js
中。例如,googlapis.com
和www.googleapis.com
。8ehkhllq6#
我先导入了图像。
然后导入
并照此使用。
并且在下一个版本12.3.1中一切正常
ndasle7k7#
在项目路线的控制台中运行:
rm -rf .next/
然后再次运行服务器并尝试