express.js怎么显示图片?

时间:2013-03-09 10:30:59

标签: node.js

我在/ public文件夹中有图像,我想要显示它们......就像这样:<img src="a.jpg">

我的app.js代码

var express = require('express')
  , app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server);

server.listen(8080);    
app.use('/public', express.static(__dirname + "/public"));

如果我在localhost中打开它,则此错误仍在显示

NetworkError: 404 Not Found - http://localhost:8080/public/a.jpg"

3 个答案:

答案 0 :(得分:1)

处理express中的静态文件 您只需将保存静态资产的目录名称传递给express.static中间件即可直接开始提供文件。 例如,如果将组件保存在名为public的文件夹中,则可以使用 app.use(express.static('public'))如下,我的图片位于public\images

var express = require('express');
var app = express();
app.use(express.static('public'));
app.get('/', function (req, res) {
  res.send('Hello World');
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})

将上面的代码保存到server.js

$ node server.js

现在在任何浏览器中打开http://127.0.0.1:8081/images/logo.png,图片都会显示

答案 1 :(得分:0)

您需要将网址中的/ public /位放到图片上 所以它变成了http://localhost:8080/a.jpg

答案 2 :(得分:0)

在您的情况下,只需编写:

app.use(express.static('public'));

它将直接提供公用文件夹。

此路径/public/images/somePhoto.png中的图像将显示为:http://localhost:8080/images/somePhoto.png

来源:https://expressjs.com/en/starter/static-files.html