如何让node.js服务器也发送js文件?

我有一个node.js文件服务器运行哪(访问时)返回一个html内容。 同样在node.js文件的同一目录中,有一个名为test.js的JavaScript文件。 也在返回的HTML内容中,我需要加载该JavaScript文件。 但是,在HTML内容中,被返回,这被称为index.html ,脚本看起来像

<script type="text/javascript" src="test.js"></script>

但服务器不发送test.js文件,它只发送index.html文件,脚本链接从相同的目录加载它。

现在我不想给url的test.js文件。 我想要node.js文件也发送test.js文件,以便它最终在与index.html相同的目录。 然后index.html可以从同一个目录加载它。

有没有一种方法,我可以指定在node.js与代码也发送test.js文件?

谢谢。

像dandavis提到的那样,您是否熟悉Express? Express允许你为你的静态文件设置一个目录。 看到我的标准configuration如下:

 app .use('view engine', jade) .use(express.compress()) .use(express.limit('10mb')) .use(express.bodyParser()) .use(app.router) .use(stylus.middleware({ src: __dirname + '/www', compile: function(str, path) { return stylus(str) .set('filename', path) .set('compress', false) .set('warn', true); } })) .use(express.static(__dirname + '/www')) .use(express.logger()); 

这里的重要部分是从底部开始的第二部分。 从本质上讲,Express现在知道要查找您在该静态目录中的HTML中指定的任何资产。 对我来说,我创build了一个名为WWW的文件夹在我的服务器文件夹,然后添加到我的JS,CSS和图像。 例如,假设我在我的WWW文件夹中创build“stylus”文件夹,并将其添加到store.css中。 我的链接到该CSS资源将在我的Jade模板中以下:

 link(rel="stylesheet", type="text/css", href="stylus/store.css") 

Express知道要查找相对于__dirname +'/ www'path的资产,并因此find“stylus”文件夹和它包含的CSS资产。 希望这有帮助,而且我没有冒险远离你的意图!