用Express框架提供图像

我正在尝试使用快速框架来提供.png,但不断收到“Can not / get”错误。

var express = require('express'), mongoose = require('mongoose'), fs = require('fs'), Schema = mongoose.Schema; app = express(), port = process.env.PORT || 3000; app.use('/public/media', express.static(__dirname + '/public/media/img0.png')); app.listen(port); console.log(__dirname + '/public/media/img0.png'); 

我打印出我的文件的目录名,以确保我有正确的path。 深入研究develepor工具却显示由于404错误导致无法加载资源。

我的文件结构是这样的。

  -- admin -- app.js public -- media -- img0.png img1.png 

从我所看到的,我的静态文件服务器应该工作,所以我有点损失。 思考?

注意这一行:

 app.use('/public/media', express.static(__dirname + '/public/media/img0.png')); 

这就是说,如果浏览器要求/public/media ,那么请提供PNG文件。 所以这将工作。

如果浏览器要求/public/media/img0.png ,那么这将是一个404。

相反,你可能会这样做:

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

这将为404 /public/media服务,但是如果相应的图像文件存在,则会为您在该目录中指定的任何图像提供服务。 所以如果浏览器要求/public/media/img0.png ,它会得到它。

您可以尝试将static应用于整个目录:

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