Javascript Node.js服务器出现脚本和图像问题

Javascript Node.js服务器出现脚本和图像问题,javascript,jquery,node.js,Javascript,Jquery,Node.js,我刚开始使用node js,并在上面移动了我的一个网站: var http = require('http'); var fs = require('fs'); var app = http.createServer(function (req, res) { fs.readFile('./index.html', 'utf-8', function(error, content) { res.writeHead(200, {'Content-

我刚开始使用node js,并在上面移动了我的一个网站:

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

var app = http.createServer(function (req, res) {

    fs.readFile('./index.html', 'utf-8', function(error, content) {
        res.writeHead(200, {'Content-Type' : 'text/html'});
        res.end(content);
    });
});
app.listen(8080);
html是我的网站主页。它只使用html工作,但如果我在其中添加标记(例如包括jquery),它会在firebug中给出JS错误:Uncaught syntax error:unexpected token<在jquery.JS中,当然还有“$未定义”。 它也不会加载图像

我真的不需要做一些路由或使用Express framework或任何东西,它只是一个简单的单页网站。
我做错了什么?

您的服务器没有处理对图像或其他资源的请求。所有请求都会在
/index.html
页面上得到相同的响应

这意味着,如果页面中包含外部脚本或图像,则当浏览器请求这些资源时,将交付原始的
index.html
页面

NodeJS是相当低级的。您需要将服务器设置为根据每个请求的URL手动处理对不同类型资源的请求

您最好阅读一些NodeJS教程。他们应该涵盖服务内容的基本知识,尽管他们中的许多人不会处理较低级别的细节,而是会建议像Connect或Express这样的软件包

将代码更改为此,您将看到请求的所有资源

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

var app = http.createServer(function (req, res) {

    var pathname = url.parse(req.url).pathname;
    var ext      = path.extname(pathname).toLowerCase();

    console.log(pathname);

    if (ext === ".html") {
        fs.readFile('./index.html', 'utf-8', function(error, content) {
            res.writeHead(200, {'Content-Type' : 'text/html'});
            res.end(content);
        });
    }
});
app.listen(8080);

你好,谢谢你的帮助;但使用您的代码,它会加载一段时间,然后浏览器会发送给我:324(net::ERR_EMPTY_RESPONSE):我已经在node上阅读了一本非常好的初学者指南,但它没有涵盖这一内容。至少目前我不想使用框架之类的东西,因为正如我所说,它是一个单页网站,所以我尽量让它简单明了。@user1397271:它不会加载,因为上面的代码没有发送对图像和脚本资源的响应。这一点是为了表明发生的请求比页面请求多。你需要学会提供所有需要的内容。如果请求
“/JS/my_JS_file.JS”
,则需要从文件系统中提供该文件,或者发送
404
(如果该文件不存在)。所有请求的资源也是如此。