4

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

如果我在本地主机中打开它,这个错误仍然显示

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

3 回答 3

3

在您的情况下,编写以下内容就足够了:

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

它将直接服务于公用文件夹。

此路径中的图像/public/images/somePhoto.png将如下所示:http://localhost:8080/images/somePhoto.png

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

于 2019-08-11T00:07:05.123 回答
2

您需要将 /public/ 位从您的 URL 放到您的图像中。
所以它变得只是http://localhost:8080/a.jpg

于 2013-03-09T10:33:28.000 回答
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并显示图像

于 2018-01-11T11:29:34.950 回答