【问题标题】:Add static middleware to serve static files in express添加静态中间件以在 express 中提供静态文件
【发布时间】:2020-10-28 02:38:15
【问题描述】:

我有以下文件夹结构:

/app
    server.js
/public
    1.jpg

我希望能够从 URI /1.jpg 访问 1.jpg 图像。
在我的server.js 文件中,我在顶部添加了以下中间件:

app.use('/', express.static('../public'));

在底部我有一个中间件可以捕获未找到的路由:

app.all('*', (req, res) => {
    res.status(404).json({
        success: false,
        message: `Can't find ${req.originalUrl} on this server!`
    });
});

当我向 /1.jpg 发出请求时,我得到了以下响应:

{
    "success": false,
    "message": "Can't find /1.jpg on this server!"
}

即使它应该服务于第一个中间件,即图像

【问题讨论】:

标签: javascript node.js express middleware


【解决方案1】:

该问题可能是由public 目录的相对路径引起的,因为该路径是相对于您启动应用程序的目录。

如果是这种情况,那么提供绝对路径应该可以解决它:

const path = require('path');
app.use('/', express.static(path.join(__dirname, '../public')))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多