我有这个代码
var express = require(' express');
var http = require(' http');
var app = express();
var server = http.createServer(app);
app.use(express.static(__dirname + '/uploads'));
console.log("listen to 8080");
server.listen(8080);
我在/uploads/test.jpg中有我的图片 但是当我去http://localhost:8080/uploads/test.jpg时,我得到了无法获得/uploads/test.jpg
答案 0 :(得分:9)
static
方法指示您将从哪个 root 文件夹提供静态内容。目前,您的图片可以从http://localhost:8080/test.jpg访问。
要从子文件夹提供图像,您需要在static
目录中创建此文件夹,例如
app.use(express.static(__dirname + '/public'));
- public
-- uploads
---- test.jpg
答案 1 :(得分:1)
app.use功能默认为' /' 。当一条路线不是' /'如果给出,则只有当路径段位于请求路径名中时,中间件句柄才有用。例如,如果我们在' / example'中安装一个函数它将在/ example上调用,而不是在' /'。所以你的请求是在" /uploads/test.jpg" 要做到这一点
app.use('/uploads', express.static(__dirname + '/public'));
现在中间件安装在' / uploads'和服务以及使用路径&上传的任何请求'喜欢 GET /uploads/test.jpg等
答案 2 :(得分:0)
使用以下代码在名为public的目录中提供图像,CSS文件和JavaScript文件。
var express = require('express');
var app = express();
app.use(express.static('public'));
现在,您可以加载公共目录中的文件:
示例:
localhost:3000/images/kitten.jpg
localhost:3000/css/style.css
localhost:3000/js/app.js