【问题标题】:Next.js Unable to serve dynamic images on the runtineNext.js 无法在运行时提供动态图像
【发布时间】:2020-09-19 00:00:28
【问题描述】:

所以我将 Next.js API 用于我的项目后端,并将 Mongodb 用于数据库。 我必须提供用户在运行时上传的图像。由于这些文件在构建期间还不可用,因此它们不会被识别为静态文件,可以存储在public 目录中。

我尝试了next-images,在next.config.js 和我的代码中添加了一些配置:<img src={require(../../../images/${picture.src})} alt={picture.legend} />

但我仍然有这个错误:

我也尝试了file-loader,但还是没有成功。

我错过了什么?

感谢您的回复!

【问题讨论】:

    标签: reactjs image next.js


    【解决方案1】:

    过去在加载图像和/或字体时遇到这些问题时,此配置对我有用:

    1. npm install url-loader --save-dev

    2. next.config.js

    module.exports = {
      webpack: function (config) {
        config.module.rules.push({
          test: /\.(eot|woff|woff2|ttf|svg|png|jpg|gif)$/,
          use: {
            loader: 'url-loader',
            options: {
              limit: 100000,
              name: '[name].[ext]',
            },
          },
        });
        return config;
      },
    }
    

    【讨论】:

    • 谢谢@james,但不幸的是,它并没有解决问题。我仍然遇到同样的错误。
    • 尝试将图像的扩展名从 .JPG 更改为 .jpg。我发布的正则表达式以及 next-images 都需要在您的文件上使用小写扩展名。
    • 谢谢,是的,这解决了与加载图像相关的问题。现在显示图像,因为它们存储在公共文件夹中。但是,当我构建项目并随后上传新图像时,即使它们与先前添加的图像位于同一目录中,仍然找不到所有这些新图像。
    • @HoracioSoldman 你找到解决方案了吗?
    • @TigerCode 不幸的是,我解决它的方法是创建一个非常基本的快递服务器,它只提供动态图像。可能这个问题已在 Next.js 的最新版本中得到修复。
    猜你喜欢
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2011-01-26
    相关资源
    最近更新 更多