使用 Express 框架提供图像
Serving Images With Express Framework
我正在尝试使用 express 框架提供 .png,但一直收到 "Cannot /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
据我所见,我的静态文件服务器应该可以工作,所以我有点不知所措。想法?
您可以尝试将 static
应用于整个目录:
app.use('/public/media', express.static(__dirname + '/public/media/'));
注意这一行:
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
,它会得到它。
我正在尝试使用 express 框架提供 .png,但一直收到 "Cannot /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
据我所见,我的静态文件服务器应该可以工作,所以我有点不知所措。想法?
您可以尝试将 static
应用于整个目录:
app.use('/public/media', express.static(__dirname + '/public/media/'));
注意这一行:
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
,它会得到它。