无法从Node Js加载Javascript和CSS文件

时间:2016-05-09 19:51:53

标签: javascript node.js

我读过很多关于"无法从节点js"加载js和css文件的问题。看起来像一个愚蠢的路径错误,但由于我是节点js的新手,我无法弄明白。 我的所有文件都在一个名为" d3"的文件夹下。任何想法出错的地方?

var http = require('http');
var fs = require('fs');
var url = require('url');
var io = require('socket.io');
var redis = require('redis');
var redis = require("redis")
, subscriber = redis.createClient();

subscriber.subscribe('channel');
var server = http.createServer(function(request, response){
    var path = url.parse(request.url).pathname; 
    switch(path) {
        case '/socket.html':
        fs.readFile(__dirname + path, function(error, data){
            if (error){
                console.log("Working " + error);                        
                response.writeHead(404);
                response.write("File doesn't exist - 404");
                response.end();
            }
            else{
                response.writeHead(200, {"Content-Type": "text/html"});
                response.write(data, "utf8");
                response.end();
            }
        });
        break;

        default:
        response.writeHead(404);
        response.write("Doesnt Exist");
        response.end();
        break;
    }
});

/* Rest of the code */

server.listen(8000);

1 个答案:

答案 0 :(得分:2)

当节点JS收到请求时,您将请求的路径传递给switch语句。

如果请求是/socket.html,则返回HTML文档。

如果请求其他(例如my.js),则会返回404错误。

您必须在请求时返回JS和CSS,而不是抛出404。