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')))
不太相关,但在生产构建中,