我读过很多关于"无法从节点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);
答案 0 :(得分:2)
当节点JS收到请求时,您将请求的路径传递给switch
语句。
如果请求是/socket.html
,则返回HTML文档。
如果请求其他(例如my.js
),则会返回404错误。
您必须在请求时返回JS和CSS,而不是抛出404。