Cloud9:nodejs服务器映像未呈现(HTML)

时间:2011-12-14 12:15:58

标签: html image node.js cloud9-ide

我在cloud9 IDE中进行了以下设置。

项目根文件夹

  1. Hello.html - 包含简单的html标记(+图像标记)预览显示图像
  2. HelloHtml.js - 读取html文件并写入客户端(响应)的节点js文件。
  3. Penguins.jpg - 同一文件夹中的图像文件。
  4. 当我运行服务并在浏览器中点击URL时,HTML将以“Hello World!”呈现。显示为。但是图像没有被渲染。 img标签中的src =“”属性应该是什么。

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

    HelloHtml.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.');
    

    的Hello.html

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

1 个答案:

答案 0 :(得分: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); 

根据请求网址制作路由方案,或者从此处使用一些静态文件服务器:

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

我建议你看一下Express,它还有路由处理:expressjs.com