2012-10-24 65 views
0

我剛剛開始使用node.js,並試圖爲靜態index.html文件提供服務,該文件當然會加載CSS,JS和圖像。我曾嘗試通過使用fs.readFile和node-static的serveFile來讀取index.html文件。爲node.js提供靜態文件但不適用於鏈接的圖像/ css/js

兩者都提供該文件,但它不能找到包含的CSS,JS和圖像。也許這是我的路徑錯誤,但這裏是我的目錄結構。

Workspace structure

我已經習慣了從index.html文件,這些引用的文件相對路徑。所以只需簡單的css/main.css。此外,如果他們需要相對於server.js文件,我做了../css/main.css。最後,如果路徑必須是絕對路徑,並且index.html目錄是root,那麼就是/css/main.css。沒有加載。

我在做什麼錯?

var http = require('http'), 
    fs = require('fs'); 


fs.readFile('../index.html', function (err, html) { 
    if (err) { 
     throw err; 
    }  
    http.createServer(function(request, response) { 
     response.writeHeader(200, {"Content-Type": "text/html"}); 
     response.write(html); 
     response.end(); 
    }).listen(8080); 
}); 

這個服務文件很好。

正如我所說,我還在學習。

節點靜態'API'不是很徹底,所以我恢復了上述路線。

謝謝。

回答

4

使用上面創建的服務器,即使請求是針對圖像或css文件,您也會爲每個請求發送HTML文件的內容。您必須檢查進入的請求對象以查看用戶請求的內容,然後發送相應的文件並設置適當的內容類型。

或者,你可以讓你的生活更容易,使用快速http://expressjs.com

快速處理大部分的這些東西對你來說,包括靜態的文件服務器。

3

我的朋友,不要浪費你自己的時間重新發明輪子

使用Express框架,據我所知,它非常舒適,並且很容易處理這些事情。

相關問題