Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加静态中间件以在express中服务静态文件_Javascript_Node.js_Express_Middleware - Fatal编程技术网

Javascript 添加静态中间件以在express中服务静态文件

Javascript 添加静态中间件以在express中服务静态文件,javascript,node.js,express,middleware,Javascript,Node.js,Express,Middleware,我有以下文件夹结构: /app server.js /public 1.jpg 我希望能够从URI访问1.jpg图像/1.jpg 在我的server.js文件中,我在顶部添加了以下中间件: app.use('/', express.static('../public')); 在buttom中,我有一个中间件,用于捕获未找到的路由: app.all('*', (req, res) => { res.status(404).json({ succes

我有以下文件夹结构:

/app
    server.js
/public
    1.jpg
我希望能够从URI访问1.jpg图像
/1.jpg

在我的
server.js
文件中,我在顶部添加了以下中间件:

app.use('/', express.static('../public'));
在buttom中,我有一个中间件,用于捕获未找到的路由:

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!"
}

即使它应该为第一个中间件(即映像)提供服务,问题也可能是由到
public
目录的相对路径引起的,因为该路径与启动应用程序的目录相对

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

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

不太相关,但在生产构建中,