NodeJS express.js如何显示图片?

az31mfrm  于 12个月前  发布在  Node.js
关注(0)|答案(4)|浏览(178)

我在/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"

6za6bjd0

6za6bjd01#

在你的情况下,这是足够的写:

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

字符串
它将直接服务于公共文件夹。
路径/public/images/somePhoto.png中的图像将显示为:http://localhost:8080/images/somePhoto.png
来源:https://expressjs.com/en/starter/static-files.html

vxqlmq5t

vxqlmq5t2#

您需要将URL中的/public/位删除到您的图像。
所以它变成了http://localhost:8080/a.jpg

vzgqcmou

vzgqcmou3#

在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,图像将显示出来

bbuxkriu

bbuxkriu4#

我去掉了“public”前面的反斜杠。
在我的app.js或server.js中,我改变了这一点:

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

字符串
对此:

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


只是以防万一有人仍然有这个问题。

相关问题