[英]getting [Cannot GET /test.html] in node.js
我对node完全陌生,并且我试图使此示例工作:
[/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]
但是当我请求(localhost:5000 / test.html)时,我进入了导航器:
无法获取/test.html。
有任何想法吗?
您将需要为server-static
提供angularjs
的绝对路径,以确保它在期望的路径中搜索。
您可以使用脚本的__dirname
作为其基础:
...serveStatic(__dirname + '/angularjs')...
或与path.join()
:
var path = require('path');
// ...
...serverStatic(path.join(__dirname, 'angularjs'))...
这是因为serve-static
正在使用的文件系统模块从当前工作目录 ( process.cwd()
)解析相对路径。
因此, ../angularjs
/path/to/node/angularjs
../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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.