1

我在 cloud9 IDE 中有以下设置。

项目根文件夹

  1. Hello.html - 包含简单的 html 标签(+image 标签)预览显示图像
  2. HelloHtml.js - 读取 html 文件并写入客户端(响应)的节点 js 文件。.
  3. Penguins.jpg - 同一文件夹中的图像文件。

当我运行服务并在浏览器中点击 URL 时,HTML 会以“Hello World!”呈现。显示为 . 但是图像没有被渲染。img 标签中的 src="" 属性应该是什么。

图像文件的路径应该是什么?谢谢你。

你好Html.js

var http = require('http');
var fs = require('fs');

http.createServer(function(request, response) {
    response.writeHead(200, {
        'Content-Type': 'text/html'
    });
    fs.readFile('./Hello.html', function(err, data){
            if(err) throw err;
            response.end(data);
        });
}).listen(process.env.PORT); 
console.log('Hello World HTML Service has started.');

你好.html

<html>
    <head>
        <title>Node JS</title>
    </head>
    <body>
        <h2>Hello world!</h2>
        <img src="Penguins.jpg" />
    </body>
</html>
4

1 回答 1

1

您没有在代码中的任何位置处理静态文件,您只是在提供文件“hello.html”,无论如何:

http.createServer(function(request, response) {
    response.writeHead(200, {
        'Content-Type': 'text/html'
    });
    fs.readFile('./Hello.html', function(err, data){
            if(err) throw err;
            response.end(data);
        });
}).listen(process.env.PORT); 

要么根据请求 url 制定路由方案,要么从这里使用一些静态文件服务器:

https://github.com/joyent/node/wiki/modules#wiki-web-frameworks-static

我建议你看看 Express,它也有这个和路由处理:expressjs.com

于 2011-12-14T12:36:40.493 回答