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

时间:2015-02-08 05:34:42

标签: javascript html node.js

我有一个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

位于同一目录中

编辑:如果我使用其他网站的完整网址,则会显示图片。例如:

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

也许您可能决定在下面单独创建一个 public / images 目录,然后将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>