带有 next.js 的 Blob 图像 URL 不起作用

Posted

技术标签:

【中文标题】带有 next.js 的 Blob 图像 URL 不起作用【英文标题】:Blob images urls with next.js doesn't work 【发布时间】:2021-07-12 07:11:45 【问题描述】:

有没有在 next.js 中使用 blob 的解决方案?以前我使用 img 和 blob URL 效果很好,但现在当我尝试使用 Image 组件时 blob url 不起作用。

我尝试将 blob 添加到域:

domains: ['softflixprodstorage.blob.core.windows.net']

但我收到错误表单服务器,因为下一个图像生成该请求 URL:

Request URL: http://localhost:3000/_next/image?url=https%3A%2F%2Fsoftflixprodstorage.blob.core.windows.net%2Fproduct-covers%2FWindows-10-Pro.webp&w=375&q=75

而不是:

Request URL: https://softflixprodstorage.blob.core.windows.net/product-covers/Microsoft-Office-2019-Professional.webp

【问题讨论】:

嗨,欢迎来到 SO!避免发布(链接到)图像!改为以文本格式发布您的代码和错误 Blob URL 目前是not supported by next/image 【参考方案1】:

我找到了你需要做的事情的答案

首先:将您的 blob api 添加到您的域

domains: ['softflixprodstorage.blob.core.windows.net']

第二个:传入图片的特殊加载器,非常简单

const loader = ()=> imgUrl (From blob api)

它应该看起来像:

<Image src=imgUrl loader=loader ...otherProps />

【讨论】:

【参考方案2】:

我目前的解决方案是创建一个自定义加载器:

const customImgLoader = ( src ) => 
    return `$src`


//later to use

<Image loader=customImgLoader  width=64 height=64 src=avatarUrl />

我们告诉 next/image 原样返回 src

【讨论】:

以上是关于带有 next.js 的 Blob 图像 URL 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Next.js 带有外部动态源的图像组件

使用带有 TypeScript 的 next/image 时获取主机未配置错误

Next.js 为导入的图像返回(失败)net::ERR_UNKNOWN_URL_SCHEME

使用带有 Material UI 的新 Next.js Image 组件

Next.js 以线性渐变为背景的图像组件

Next.js 在本地目录中搜索图像,而不是在 AWS 上