我试图使用express框架为.png提供服务,但一直收到“cant/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');

我打印出我的文件的目录名,以确保我有正确的路径。但是深入研究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'));

这将为/public/media服务404,但如果对应的映像文件存在,则将在该目录中指定任何映像。因此,如果浏览器要求/public/media/img0.png,它将得到它。

关于linux - 使用Express Framework提供图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30112495/

10-14 15:58