2011-12-14 14 views
1

私はcloud9 IDEで次の設定をしています。Cloud9:nodejsサーバイメージがレンダリングされない(HTML)

プロジェクトのルートフォルダが

  1. Hello.html - HTMLファイルを読み込み、への書き込みノードのjsファイル - 簡単なHTMLタグ(+画像タグ)が含まれていプレビュー画像
  2. HelloHtml.jsを表示しますクライアント(応答)。 。
  3. Penguins.jpg - 同じフォルダ内の画像ファイル。

サービスを実行してブラウザで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

あなたは単に「ファイルを提供している、あなたのコード内の任意の場所に提供する静的ファイルを処理していない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

私はあなたがエクスプレスを見てお勧め、それはまた、その経路の取り扱いがありますexpressjs.com

関連する問題