2016-09-24 85 views
0

正常工作當我從我的應用程序目錄中運行的節點,即:運行節點只能從app目錄

/var/www/html/ 
node server.js 

該網站正常運行。

當我試圖從它運行在不同的目錄開始的節點,但有一個錯誤的根:

#(not in /var/www/html) 
node /var/www/html/server.js 

什麼情況是,正在執行正確的文件,但所有的路搞的一團糟。下面是示例的錯誤:

GET /auth/login 500 32.511 ms - 2206 
Error: Failed to lookup view "login" in views directory "/home/ec2-user/views" 

因爲視圖「登錄」不是

/home/ec2-user/views 

/var/www/html/views 

發現我怎樣才能糾正這個錯誤並不奇怪行爲?

澄清:

我問這個問題,因爲我試圖建立永遠的新貴運行節點。 該服務成功運行在新貴上,但手動啓動服務器遇到同樣的問題。

回答

1

這很可能會發生,如果你定義像例如路徑對於喜歡模板引擎:

app.set('views', './views'); 

隨着.它查找,從那裏你啓動應用程序的目錄。

您需要使用__dirname這樣的:爲了搜索的意見目錄中的腳本的文件夾

app.set('views', __dirname + '/views'); 

。如同樣在這裏解釋的:What is the difference between __dirname and ./ in node.js?

相關問題