越来越[得不到/test.html在node.js中
问题描述:
我完全新的节点,我试图让这个例子的工作:越来越[得不到/test.html在node.js中
[/path/to/node/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 /测试.html) 我正在导航器中:
无法获取/test.html。
任何想法?
答
您需要提供server-static
,其绝对路径为angularjs
以确保它在预期路径中搜索。
您可以使用脚本的__dirname
为基准,为它:
...serveStatic(__dirname + '/angularjs')...
或者与path.join()
:
var path = require('path');
// ...
...serverStatic(path.join(__dirname, 'angularjs'))...
这是因为file system module,即serve-static
使用,解决了相对来自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'
您可能想要使用Express 4.x,它在节点中提供了很好的功能,但使用了[不同的初始化顺序](http:// expr essjs.com/starter/hello-world.html)而不需要连接模块。 – jfriend00 2014-10-21 22:49:38