Cloud9: изображение сервера nodejs не отображается (HTML) - PullRequest
1 голос
/ 14 декабря 2011

У меня есть следующие настройки в cloud9 IDE.

Корневая папка проекта

  1. Hello.html - содержит простые теги html (+ тег изображения) Предварительный просмотр отображает изображение
  2. HelloHtml.js- файл узла js, который читает файл html и пишет клиенту (ответ)..
  3. Penguins.jpg - файл изображения в той же папке.

Когда я запускаю службу и нажимаю URL-адрес в браузере, HTML отображается с "Hello World!"отображается как.Но изображение не получается.Каким должен быть атрибут src = "" в теге img.

Каким должен быть путь к файлу изображения?Спасибо.

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 Ответ

1 голос
/ 14 декабря 2011

Вы не обрабатываете статические файлы, служащие где-либо в вашем коде, вы просто обслуживаете файл '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

...