node.js与readFile html但没有加载/查找jquery文件

我在node.js读取html文件时无法加载我的jquery文件或任何文件。 我花了很长时间在这上面,并注意到基于Web的谷歌托管库文件工作正常,但我的本地文件没有。 我无法弄清楚为什么,也许我没有把它指向正确的目录,但我不确定我会把它放在哪里或直接它。

目录包括这3个文件

index.html jquery.min.js loadfile.js 

index.html已注释掉的谷歌托管的jquery文件工作得很好。 但当地没有。

       <!--  -->  $(document).ready(function() { alert("test"); });    Hi!   

这是我用节点加载的文件。 loadfile.js

 var http = require('http'); var url = require('url'); var fs = require('fs'); server = http.createServer(function (request, response) { current_url = url.parse(request.url).pathname; file_path = __dirname + current_url; var tmp = file_path.lastIndexOf('.'); var ext = file_path.substring(tmp + 1); console.log(ext); if(ext == 'js') response.writeHead(200, {'Content-type': 'text/javascript'}); else if(ext == 'css') response.writeHead(200, {'Content-type': 'text/css'}); else response.writeHead(200, {'Content-type': 'text/html'}); if(current_url == '/') { fs.readFile('index.html', 'utf8', function (errors, contents) { response.end(contents); }); } else { response.end(); } }); server.listen(8000); console.log("Running in localhost at port 8000"); 

我得到这个错误Uncaught ReferenceError:$没有在$(document).ready行上定义,因为它似乎不认为我加载了jquery。

任何帮助,将不胜感激。 我总是可以使用谷歌托管文件,但这并不适合我。 提前致谢!

如果current_url不是“/”,您实际上没有提供文件 ,现在您的服务器只能将index.html的文件内容发送到客户端。

您需要在“else”子句中包含以下内容:

 fs.readFile(file_path, 'utf8', function (errors, contents) { response.end(contents); });