我的应用程序的NodeJitsu文件夹结构如下(即,当我做一个jitsu deploy
时,我在包含“server.js” - 即,“服务器”文件夹)。NodeJitsu错误:错误:ENOENT,stat'/ opt/run/snapshot/
Root server
|___server.js
|___package.json
client
|___www
|___index.html
|___css
|___js
|___etc.
所以根文件夹是“server”,包含启动脚本“server.js”。然后有一个名为“客户端”的文件夹,与“服务器”平行,其中有一个名为“www”的文件夹,在“www”内是主要的“index.html”。
在我的“server.js”的文件,我有以下代码:
app.get(‘/’, function(req,res)
{
var aPath = path.resolve(“../client/www/”, “index.html”);
res.sendFile(aPath);
});
我没有app.use(express.static(__dirname + '/somefolder')
。当我启动应用程序,我得到这个错误:
Error: ENOENT, stat '/opt/run/snapshot/client/www/index.html'
我process.cwd()
是/opt/run/snapshot/package
。显然上面的路径并不指向“index.html”所在的位置。但我认为我做path.resolve(…)
的方式应该指向“index.html”。我看不出问题在哪里。如果“server.js”在根目录中,那么要到“client/www/index.html”中的“index.html”,那么我需要写“../client/www”,相对的转到脚本,去“index.html”,对吧?
您对路径设置不正确有什么见解吗? /opt/run/snapshot/
应该指向什么?或者,我需要在get(‘/’)
处理程序中做出哪些更改才能正确指向我的“index.html”?
编辑
我画了不正确的文件夹结构。现在它是正确的。
我也关掉了app.get()
并打开了app.use(express.static(__dirname + '/../client/www/')
。但无济于事:现在我得到一个Cannot GET /
错误。
我最终要做的是让“server.js”文件成为节点服务器,它主要是为浏览器提供AngularJS HTML文件,以及来自“客户端”的附带图片,样式表等“文件夹。这是服务器的主要角色,它还具有验证应用程序用户的额外作用,并使用非常好的Satellizer模块。就是这样。我附有一个MongoDB,但除此之外,这是一个非常常见和直接的Node.js服务器应用程序。
谢谢!
它在本地工作吗?你的客户和WWW都在大写,确保它不是个案。 – laggingreflex 2014-11-09 08:25:29