使用Express Framework提供图像

时间:2015-05-07 22:07:07

标签: linux node.js express digital-ocean

我正在尝试使用快速框架服务.png,但继续接收"不能/得到"错误。

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');

我打印出我文件的目录名,以确保我有正确的路径。然而,更深入地了解develepor工具会显示由于404错误而无法加载资源。

我的文件结构是这样的。

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

从我所看到的,我的静态文件服务器应该工作,所以我有点亏。想法?

2 个答案:

答案 0 :(得分:2)

请注意以下这一行:

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'));

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

答案 1 :(得分:0)

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

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