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