2013-09-01 80 views
0

我有一个工作项目,但我决定尝试视觉节点(http://www.visualnode.info/readme)以便在Visual Studio环境中使用node.js。使用视觉节点原因快递不提供静态文件

出于某种原因,该行不会影响快递为静态文件:

app.use(express.static(path.join(__dirname, 'client'))); 

当尝试:

res.sendfile('client/views/index.html'); 

引擎搜索下错了路径的文件:

404 Error: ENOENT, stat 'C:\Windows\system32\client\views\index.html' 

问题是'C:\Windows\system32\'从哪里来的?

而不是,应该有我的项目文件夹。

回答

0

首先,这样的:

app.use(express.static(path.join(__dirname, 'client')));

是一个中间件适配器,以便快递会(使用__dirname)自动提供从client文件夹的静态文件确定当前的本地目录作为参考。

当您使用

res.sendfile('client/views/index.html');

节点,并表示将使用当前的本地目录+路径提供服务的文件。但是,看起来当您使用Visual Node时,它不能正确设置存储应用程序的本地路径,所以路径不幸设置为system32目录。

你可以看到,如果你切换到您的应用程序存储和运行的目录程序应该如何工作的:

> cd c:\dev\greatwebapp 
> node app.js 

(替代课程的真实姓名)

你看到类似的东西:

Express server listening on port 3000 

然后,你应该能够导航到浏览器到你的路线/路径和文件之一应该正确显示。看起来可能是可视节点的问题:http://redgatesupport.red-gate.com/entries/25428576-Working-Directory-Issues

要解决的问题,您可以:

res.sendfile(__dirname + '/client/views/index.html');

+0

希望他们会得到它修复。感谢解决方案! – ohadinho