我对节点完全不熟悉,我试图让这个例子起作用:
[/路径/到/节点/ server.js]
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic('../angularjs'), {default: "test.html"});
app.listen(5000);
我在angularjs文件夹中有文件test.html: [/path/to/node/angularjs/test.html]
但是当我要求的时候 (本地主机:5000 / test.html的) 我进入了导航器:
无法获得/test.html。
有什么想法吗?
答案 0 :(得分:2)
您希望向server-static
提供angularjs
的绝对路径,以确保其在预期路径中进行搜索。
您可以使用脚本__dirname
作为基础:
...serveStatic(__dirname + '/angularjs')...
var path = require('path');
// ...
...serverStatic(path.join(__dirname, 'angularjs'))...
这是因为serve-static
正在使用的file system module解析了current working directory(process.cwd()
)的相对路径。
因此,../angularjs
是否解析为/path/to/node/angularjs
取决于从哪个目录server.js
开始。
目前,它可以从/path/to/node/angularjs/
:
$ cd /path/to/node/angularjs
$ node ../server.js
# resolves: '/path/to/node/angularjs' + '../angularjs'
# to: '/path/to/node/angularjs'
或者,通过将../
(父目录)更改为./
(当前目录),可以从/path/to/node
开始:
...serveStatic('./angularjs')...
$ cd /path/to/node
$ node server.js
# resolves: '/path/to/node' + './angularjs'
# to: '/path/to/node/angularjs'