Javascript 如何使node.js服务器也发送js文件?
我有一个运行的Javascript 如何使node.js服务器也发送js文件?,javascript,node.js,load,client-server,Javascript,Node.js,Load,Client Server,我有一个运行的node.js文件服务器(当被访问时)返回html内容。在node.js文件的同一目录中,还有一个名为test.js的javascript文件。在返回的html内容中,我还需要加载该javascript文件。然而,在返回的html内容中,它被称为index.html,脚本如下所示 但是服务器没有发送test.js文件,它只发送index.html文件,脚本链接从同一个目录中相对加载它 现在我不想给出test.js文件的url。我希望node.js文件也发送test.js文件,以便
node.js
文件服务器(当被访问时)返回html内容。在node.js
文件的同一目录中,还有一个名为test.js
的javascript文件。在返回的html内容中,我还需要加载该javascript文件。然而,在返回的html内容中,它被称为index.html
,脚本如下所示
但是服务器没有发送test.js
文件,它只发送index.html
文件,脚本链接从同一个目录中相对加载它
现在我不想给出test.js
文件的url。我希望node.js
文件也发送test.js
文件,以便它最终与index.html
位于同一目录中。然后index.html
可以从同一目录加载它
是否有一种方法可以在node.js
中使用代码指定,以同时发送test.js
文件
谢谢。您熟悉丹达维斯提到的Express吗?Express允许您为静态文件设置目录。请参见下面的“我的标准配置”:
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中指定的任何资产。对我来说,我在服务器文件夹中创建了一个名为WWW的文件夹,然后将我的JS、CSS和图像添加到其中。
例如,假设我在我的WWW文件夹中创建了“stylus”文件夹,并将其添加到store.css中。在我的Jade模板中,指向该CSS资产的链接如下所示:
link(rel="stylesheet", type="text/css", href="stylus/store.css")
Express知道如何相对于_dirname+/www”路径查找该资源,从而找到“stylus”文件夹及其包含的CSS资源。希望这有帮助,我没有冒险背离你的意图 在web服务器上托管js文件,并在脚本标记的src属性中指定js的完整URL如何检查该链接:听起来像express或其他REST工具包之一。