添加静态中间件以在 express 中提供静态文件
Add static middleware to serve static files in express
我有以下文件夹结构:
/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!"
}
即使它应该提供第一个中间件,也就是图像
问题可能是由 public
目录的相对路径引起的,因为该路径是相对于您启动应用程序的目录的。
如果是这种情况,那么提供绝对路径应该可以解决问题:
const path = require('path');
app.use('/', express.static(path.join(__dirname, '../public')))
我有以下文件夹结构:
/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!"
}
即使它应该提供第一个中间件,也就是图像
问题可能是由 public
目录的相对路径引起的,因为该路径是相对于您启动应用程序的目录的。
如果是这种情况,那么提供绝对路径应该可以解决问题:
const path = require('path');
app.use('/', express.static(path.join(__dirname, '../public')))