首页 > 解决方案 > 返回托管在我的服务器上的图像的路径以在前端显示它

问题描述

目前在我的服务器上,我在这些图像的路径下:

/opt/myproject/assets/5259521.jpg
/opt/myproject/assets/5259522.jpg
/opt/myproject/assets/5259523.jpg

我正在使用 nodejs 创建我的 Web 服务。我想知道返回图像路径的方法是什么,以便前端可以在img标签中显示它们。

我的restAPI可以通过路径访问:

http://3.89.xx.xx/getImages

在这里,我需要返回图像路径,以便可以在我的 Web 应用程序中显示它们。

    app.use(cors());
    app.options('*', cors());
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({ extended: false }))

    // parse application/json
    app.use(bodyParser.json());

    // Configuración global de rutas
    app.use(require('./routes/index'));

    const distDirectory = path.join(__dirname, '/public');

    app.get('*', function (req, res, next) {
        const file_path = path.join(distDirectory, req.url.split('?').shift());
        if (fs.existsSync(file_path)) next();
        else res.sendFile(path.join(distDirectory, 'index.html'));
    });
    app.use(express.static(distDirectory));

谢谢

标签: node.js

解决方案


要提供静态文件,例如图像、CSS 文件和 JavaScript 文件,请使用 Express 中的 express.static 内置中间件函数。

函数签名是:

express.static(root, [options])

您需要将所有图像放在public文件夹中或添加您选择的文件夹名称,然后在express.static中间件中传递静态文件夹。

文件夹的名称Public 只是一个约定,您可以将文件夹的名称设置为任何内容。

例如,使用以下代码在名为 public 的目录中提供图像、CSS 文件和 JavaScript 文件:

app.use(express.static('public'))

并像访问它:

http://localhost:3000/assets/5259521.jpg

我假设您的图像在public/assets文件夹下。


推荐阅读