显示带有node.js的html页面

use*_*087 15 node.js

这是我第一次使用node.js. 我得到它来显示index.html,但它不显示网站上的图像或其他任何东西,它只显示基本的HTML内容.这是我如何设置它.服务器上没有apache,php或其他任何东西,只有ubuntu,proftp和node(以及curl和其他依赖项).我为节点文件/ var/nodeFiles创建了主目录,而html/site文件的目录是/ var/nodeFiles/www所以对于我的节点服务器文件,我这样做:

var http = require('http'),
    fs = require('fs');
fs.readFile('/var/nodeFiles/www/index.html', function (err, html) {
    if (err) {
        throw err; 
    }       
    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(80);
});
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它只显示index.html文件和NOTHING附加到它,因此没有图像,没有效果或html文件应显示的任何内容.文件和目录都是正确的,我已经双重检查,文件夹的权限是正确的.那么我还需要做些什么来让节点显示网站的其余部分?我希望我已经正确地解释了自己,我被告知这是一个提出发展问题的地方.感谢您抽出时间来阅读.

Hec*_*rea 22

但它只显示index.html文件和NOTHING附加到它,因此没有图像,没有效果或html文件应显示的任何内容.

那是因为在你的程序中,无论请求是什么样的,你都会返回浏览器.

您可以在这里查看更完整的示例,该示例将返回最常见网页(HTML,JPG,CSS,JS)的正确文件https://gist.github.com/hectorcorrea/2573391

另外,看一下我写的关于如何开始使用node的博客文章.我想这可能会为你澄清一些事情:http://hectorcorrea.com/blog/introduction-to-node-js

  • 您的博客非常有帮助.从PHP到节点,有一些概念应该被清除.我有几个人,我刚刚发送你的博客,有一些时间进行转换. (2认同)

Tsi*_*sum 7

检查此基本代码以设置html服务器.它为我工作.

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


fs.readFile('./index.html', function (err, html) {
    if (err) {
        throw err; 
    }       
    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(8000);
});

  • 这只显示`index.html`而该目录中没有其他文件 (3认同)

Cod*_*ner 7

这对我有用:

var express = require('express'),
app = express(); 
app.use('/', express.static(__dirname + '/'));
app.listen(8080);
Run Code Online (Sandbox Code Playgroud)