NextJS 加载亚马逊外部图片
NextJS load external image Amazon
amazon 上有一个特定的 url,它在 s3 上存储一些图像,相关的 amazon 域已经在 next.config.js 中的域上配置,但不会在前端加载。如果我放置任何外部 url、unsplah 或其他,它会正常加载。
有问题的 url 是:idinheiro-admin-images.s3.sa-east-1.amazonaws.com
控制台上发生的错误在 url 和 404(错误请求)
--错误控制台--
GET http://localhost:3000/_next/image?url=https%3A%2F%2Fidinheiro-admin-images.s3.sa-east-1.amazonaws.com%2Fcartao-de-credito%2Fol%25C3%25A9%2520consignado_1619718123784.png&w=64&q=75 400 (Bad Request)
--next.config.js--
(module.exports = {
images: {
domains: [
'images.unsplash.com',
'idinheiro-admin-images.s3.sa-east-1.amazonaws.com'
]
}
})
--使用组件--
<Image
src="https://idinheiro-admin-images.s3.sa-east-1.amazonaws.com/cartao-de-credito/ol%C3%A9%20consignado_1619718123784.png"
alt={partnerCard.alt}
width={100}
height={63}
/>
所以我搜索了amazon s3 request,看来你在发送请求的时候还需要配置一些东西。查看 s3 存储桶的响应代码:
https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
并查看此博客以获取有关使用 s3 存储桶设置 Nextjs 网站的信息:
https://medium.com/bb-tutorials-and-thoughts/how-to-build-a-next-js-static-website-with-aws-s3-643ff55261ac
从博客中脱颖而出的一件事:“我们需要做的另一件事是在权限选项卡下启用 public 访问权限。您也可以在上传文件时执行此操作。”
编辑:首先尝试启用 public 访问(如果存储桶可以 public),然后查看请求是否成功。
在 next.config.js 中确保域 URL 正确。最好的方法是使用您的 s3 URL 打开一个选项卡,然后复制并粘贴“.com”
之前的所有内容
例如:
module.exports = {
images: {
domains: ['example.s3.us-west-2.amazonaws.com'],
}
}
对于图像:
<Image
src={
'https://example.s3.us-west-2.amazonaws.com/playstation.jpg'
}
width={170}
height={100}
/>
请记住宽度和高度是必需的,除非您直接将图像导入您的 React 代码。
amazon 上有一个特定的 url,它在 s3 上存储一些图像,相关的 amazon 域已经在 next.config.js 中的域上配置,但不会在前端加载。如果我放置任何外部 url、unsplah 或其他,它会正常加载。
有问题的 url 是:idinheiro-admin-images.s3.sa-east-1.amazonaws.com
控制台上发生的错误在 url 和 404(错误请求)
--错误控制台--
GET http://localhost:3000/_next/image?url=https%3A%2F%2Fidinheiro-admin-images.s3.sa-east-1.amazonaws.com%2Fcartao-de-credito%2Fol%25C3%25A9%2520consignado_1619718123784.png&w=64&q=75 400 (Bad Request)
--next.config.js--
(module.exports = {
images: {
domains: [
'images.unsplash.com',
'idinheiro-admin-images.s3.sa-east-1.amazonaws.com'
]
}
})
--使用组件--
<Image
src="https://idinheiro-admin-images.s3.sa-east-1.amazonaws.com/cartao-de-credito/ol%C3%A9%20consignado_1619718123784.png"
alt={partnerCard.alt}
width={100}
height={63}
/>
所以我搜索了amazon s3 request,看来你在发送请求的时候还需要配置一些东西。查看 s3 存储桶的响应代码: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
并查看此博客以获取有关使用 s3 存储桶设置 Nextjs 网站的信息: https://medium.com/bb-tutorials-and-thoughts/how-to-build-a-next-js-static-website-with-aws-s3-643ff55261ac
从博客中脱颖而出的一件事:“我们需要做的另一件事是在权限选项卡下启用 public 访问权限。您也可以在上传文件时执行此操作。”
编辑:首先尝试启用 public 访问(如果存储桶可以 public),然后查看请求是否成功。
在 next.config.js 中确保域 URL 正确。最好的方法是使用您的 s3 URL 打开一个选项卡,然后复制并粘贴“.com”
之前的所有内容例如:
module.exports = {
images: {
domains: ['example.s3.us-west-2.amazonaws.com'],
}
}
对于图像:
<Image
src={
'https://example.s3.us-west-2.amazonaws.com/playstation.jpg'
}
width={170}
height={100}
/>
请记住宽度和高度是必需的,除非您直接将图像导入您的 React 代码。