将远程和本地图像与 next/image 一起使用

2024-05-11

我正在尝试使用next/image加载本地图像以及远程图像。我有我的本地图像public/assets/images以及AWS S3中的远程图像。我想在上传图像之前使用占位符图像(来自本地),然后在上传后将其替换为远程图像。

我已经添加了domains in my next.config.js:

const withPlugins = require('next-compose-plugins')
const nextTranslate = require('next-translate')

const nextConfig = {
  ...
  images: {
    domains: ['xxx.amazonaws.com'],
  },
  ...
}
module.exports = withPlugins([nextTranslate], nextConfig)

但它仍然代理它localhost并返回The requested resource isn't a valid image.

我尝试添加path and loader随着domains在配置中,但随后它会从给定路径加载所有图像,无论是远程还是本地。

我可以使用img它的标签,但我希望使用 next/image 进行图像优化。是否可以?


我刚刚遇到了这个问题,这就是我解决它的方法。在你的项目中next.config.js文件中,添加您的站点可能从中提取图像的域列表。这将包括localhost、部署时您的站点所在的域以及外部站点。然后设置loader to custom.

// next.config.js

module.exports = {
  images: {
    domains: ['localhost', 'yourdomain.com', 'externaldomain.com'],
    loader: 'custom'
  }
}

然后在您的代码中,确保为每个图像设置了 loader 属性和正确的 src。然后,对于本地图像,以这种方式设置自定义加载程序。

<Image loader={({src}) => src} src="/logo.png" layout="fill" />

感谢休斯的帮助以上评论 https://stackoverflow.com/questions/67985068/use-remote-and-local-images-together-with-next-image#comment124530002_67985068他们链接的问题 https://stackoverflow.com/questions/70429040/getting-public-image-asset-in-next-js-project-folder-when-loader-configuration-p帮助我解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将远程和本地图像与 next/image 一起使用 的相关文章

随机推荐

  • 如何使用 Nuxt ServerMiddleware 和 Apollo GraphQL 处理 301 重定向

    我目前正在构建一个 Vue Nuxt 应用程序 并结合修改后的 Saleor 安装来在线销售产品 当我们从现有系统迁移时 我们需要能够处理从旧网站 URL 到新网站 URL 的 301 重定向 我修改了 API 以响应以下 GraphQL
  • 将图片添加到图库 - Android

    我有一个活动 用相机拍照 然后将其添加到正确的文件夹 在本例中为 DCIM Camera 但是当你退出应用程序并加载 Android 图库时 它不在那里 我正在玩一些游戏 发现它只在重新启动手机后才出现 我不确定这背后的原因 也许它必须创建
  • 如何避免在 webpack 生产构建中重复模块“bn.js”?

    我的应用程序使用了 webpack 4 不知何故 bn js包在生产构建中占用了大量资源 从图中可以看出 它占用了594 22KB 数据 有没有办法让1个文件bn js对于所有依赖于的包bn js 发生这种情况可能是因为您的依赖项都需要不同
  • 禁用选择标签内的一个选项值在 IE6Ha 中不起作用[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个包含 4 个值 a b c d 的选择框 我只想禁用下拉列表中的 c 我使用了禁用属性 它在所有浏览器中都有效 但在 IE6
  • 在 pyproject.toml 的动态字段中使用 python 脚本生成的值

    我试图找到一种使用 pyproject toml 内的 python 脚本生成的值的方法 例如 假设我们有一个函数random version 我正在使用 setuptools 来构建包 import random def random v
  • 从 jQuery 事件访问函数中的参数*和*事件

    这是我不久前问的另一个问题的后续问题 通常 您可以从 jQuery 事件的函数调用中访问事件 如下所示 item live click functionToCall 并在函数中 function functionToCall ev do s
  • 为什么 std::shared_ptr 实现中需要两个指向托管对象的原始指针?

    这是 cppreference 的实现说明部分的引用std shared ptr 其中提到有两个不同的指针 如粗体所示 可以通过get 以及在控制块内保存实际数据的一个 在典型的实现中 std shared ptr仅保存两个指针 存储的指针
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • Python SQLite SELECT LIKE IN [列表]

    如何在Python中编写SQL查询来选择Python列表中的元素 例如 我有 Python 字符串列表 Names name 1 name 2 name n 和 SQLite table 我的任务是找到最短路线 SELECT element
  • Python选择列表中最长字符串的最有效方法?

    我有一个可变长度的列表 并且正在尝试找到一种方法来测试当前正在评估的列表项是否是列表中包含的最长字符串 我正在使用Python 2 6 1 例如 mylist abc abcdef abcd for each in mylist if co
  • 使用 buildSchema 时如何访问字段解析器内父解析器的值?

    当我们使用 graphqlHTTP 时 传递给解析方法的第一个参数实际上是客户端查询传递的参数 而不是 root 这对于查询解析器来说很好 但是对于字段解析器需要知道父级值的用例 如何实现这一点 type Person name Strin
  • Flutter中如何在弹出屏幕后调用函数更新值?

    屏幕 1 显示带有添加按钮的项目列表 屏幕 2 用于将新项目添加到列表的表单 屏幕 2 gt gt 屏幕 1 在屏幕 2 中调用 navigator pop 时 如何在屏幕 1 中调用方法 setState 更新列表 谁能帮我吗 我不想再次
  • 在 Visual Studio Code 中调试 Strapi

    我正在尝试在 VS Code 中调试我的 Strapi 项目 3 0 0 beta 16 6 我的启动 json type node request attach name Attach to strapi port 9229 我的pack
  • Ruby Regex 舍入尾随零

    我正在寻找一个正则表达式来删除十进制数字中的尾随零 它应该返回以下结果 0 0002300 gt 0 00023 10 002300 gt 10 0023 100 0 gt 100 1000 gt 1000 0 0 gt 0 0 gt 0
  • Office JavaScript API:突出显示文档中的文本

    我正在使用 Microsoft Office JavaScript API 开展一个业余项目 我一直依赖着文档 https learn microsoft com en us office dev add ins reference jav
  • 是否可以使用谷歌地图从坐标获取地址?

    我只是好奇 也许是为了未来的项目 我想知道是否可以通过 Google API 从给定坐标检索地址 是的 只需使用 Google 地理编码和 Places APIhttps developers google com maps documen
  • vuejs 延迟加载组件,无需路由器

    vue 中的延迟加载组件使用 webpack 并不困难 https alligator io vuejs lazy loading vue cli 3 webpack https alligator io vuejs lazy loadin
  • leaflet.draw 垃圾按钮删除所有多边形并保存

    使用javascript 如何更改leaflet draw 垃圾桶 按钮以删除所有已绘制并自动保存的多边形 下面是我实现的代码 但它是一个完整的黑客 它会删除活动多边形 但是在删除对象后 当我单击 垃圾箱 图标时 控制台中开始出现错误Not
  • 如何在 ClojureScript 中运行 eval 并访问调用 eval 的命名空间?

    我有一个函数库 我想让用户在浏览器中使用它 所以我想设置这样的情况 我正在使用 Figwheel 和 devcards 进行开发 在主要的 core cljs 我require我的库中的各种函数 所以它们都在范围内 现在我想让用户输入一些调
  • 将远程和本地图像与 next/image 一起使用

    我正在尝试使用next image加载本地图像以及远程图像 我有我的本地图像public assets images以及AWS S3中的远程图像 我想在上传图像之前使用占位符图像 来自本地 然后在上传后将其替换为远程图像 我已经添加了dom