【问题标题】:How to export static images on Nextjs?如何在 Nextjs 上导出静态图片?
【发布时间】:2022-01-26 16:33:56
【问题描述】:

当我想导出我的 nextjs 应用程序时,它说我无法在静态网站上导出我的图像。

错误:使用 Next.js 的默认加载器的图像优化与 next export 不兼容。 可能的解决方案: - 使用next start 运行服务器,其中包括图像优化 API。 - 使用任何支持图像优化的提供商(如 Vercel)。 - 在next.config.js 中配置第三方加载器。 - 为next/image 使用loader 属性。

我怎样才能做到这一点?

有没有办法让我简单地告诉它静态渲染图像?我不想通过其他在线图像加载器..

【问题讨论】:

标签: javascript next.js nextjs-image next-images


【解决方案1】:

您需要在 Next.js 中设置自定义图像加载器

在您的 next.config.js 文件中,将此属性添加到导出:

images: {
  loader: "custom"
}

并制作一个名为loader.js 的脚本来导出:

function imageLoader({ src }) {
  return `/images/${src}`; // REPLACE WITH YOUR IMAGE DIRECTORY
}

module.exports = imageLoader;

对于每个Image 组件,手动设置loader 属性:

const imageLoader = require("PATH TO loader.js");

<Image loader={imageLoader} />

【讨论】:

  • 非常感谢您的快速答复。我应该把 loader.js 放在哪里?它在我的 中说它不存在再次非常感谢您
  • 你可以把它放在任何你想要的地方,也许在你的组件之外的一个单独的文件夹中——确保导出函数并从每个文件中导入它
  • 非常感谢。有了更多的见解并查看页面的代码,我发现在返回部分我们只需要 ${src} 。非常非常感谢你。我希望你在哪里都很好。你是我现在要睡觉的原因,非常感谢你。
  • 此方法行不通,您需要在使用自定义加载程序时向托管图像的第三方云提供商(不是本地路径)提供 URL。优化需要发生在某个地方,在这种情况下是第三方服务。
  • @juliomalves 是的,我想使用img 标签会起作用,但它的行为方式与Image 组件的行为方式不同,因此它可能会造成不一致——我只是更喜欢这个方法,因为它很容易在必要时替换为不同的图像加载器——实际上也没有太大的缺点
猜你喜欢
  • 2020-12-19
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 2021-09-17
  • 2020-02-16
  • 2021-09-25
  • 1970-01-01
相关资源
最近更新 更多