我的應用程序的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