未在node.js上显示的图像显示网页

问题描述 投票:0回答:3

我有一个node.js服务器,代码如下:

var http = require('http'),
    fs = require('fs'),
    index = fs.readFileSync(__dirname + '/index.html');

var app = http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end(index);
});

app.listen(80);

当我在index.html中使用标记时,不会显示任何图像:

<html>
    <body>
        <img src="settings.gif" />
    </body>
</html>

该映像与server.js文件和index.html位于同一目录中

编辑:如果我使用完整的URL到另一个站点,图像将显示。例:

<img src="http://yellowicons.com/wp-content/uploads/Gear-Icon-2.png" />

javascript html node.js
3个回答
0
投票

尝试使用绝对路径。如果失败,请将映像文件保存在public/images目录中。并使用此地址:

<img src="http://localhost:3000/images/Heading.png" />

0
投票

我猜你的服务器不知道你的图像在哪里,我没有看到你的代码指定的位置。我建议你使用带有express的nodejs来处理你所有的路由,只需google它并有大量的例子。祝好运


0
投票

也许您可以决定在下面单独创建一个公共/图像目录,并将settings.gif以及任何其他图像复制到可公开查看的图像目录中。

接下来,您需要通过将这两行添加到node.js中来告知节点公共目录的静态引用

var publicDir = require('path').join(__dirname,'/public');
app.use(express.static(publicDir));

之后,图像可以在html中标记为

<html>
    <body>
        <img src="images/settings.gif" />
    </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.