404找不到从nodejs / connect.static('../ angularjs')获取静态文件

时间:2014-06-03 02:21:46

标签: javascript node.js

我已经在SO上看到了另一个问题,但是我无法解释为什么我无法解决这个问题。在与我的节点安装相同的目录中,我运行了命令npm installnpm install connect。然后再次在与我的节点安装相同的目录中创建了一个server.js文件:

var connect = require("connect");
var app = connect.createServer().use(connect.static('../angularjs'));
app.listen(8180);

所以,当我再次在我的根节点目录中时,{I} node server.js 启动服务器,它开始很好。在节点的根目录中,我创建了一个名为angularjs的文件夹,在该文件夹中我放置了一个index.html。每当我在浏览器中导航到localhost:8180 / index.html时,我收到消息Cannot GET /index.html。看来这应该有效,我在这里想念的是什么?

1 个答案:

答案 0 :(得分:2)

注意目录的位置。从阅读你的帖子看来,你有一个包含angularjs目录的节点源目录,这就是我在测试时创建的内容。

在Linux上,您可以使用lsls -l(详细)命令检查目录及其中的文件

使用connect.static()参数./angularjs在此处工作,但不起作用  ../angularjs

测试程序

$ mkdir nodetest
$ cd nodetest
$ mkdir angularjs
$ cat >server.js <<EOF
var connect = require("connect");
var app = connect.createServer().use(connect.static('../angularjs'));
app.listen(8180);
EOF
$ npm install connect
$ emacs ./angularjs/test.html # make a html file to get
$ nodejs ./server.js &
$ wget http://localhost:8180/test.html
# fails 404
$ kill %1 // kill nodejs
$ emacs ./server.js # change ../angularjs to ./angularjs
$ nodejs ./server.js &
$ wget http://localhost:8180/test.html
# works