2014-03-13 47 views
0

我創建了一個Node.js服務器,當Javascript是HTML頁面的一部分時,該服務器運行良好。我將JS移動到另一個文件並添加了一些圖像。現在它不會將圖像或JS加載到瀏覽器中。但是,當我直接打開網頁時,網頁呈現完美。這是我的服務器的樣子:如何使用Node js將圖像和JavaScript文件發送到瀏覽器

app.get('/',function(req,res){ 
    res.end('Hello World!Go to /map to see the google map'); 
}); 
app.get('/map',function(req,res){ 
    var conn; 
    //images must be sent to the client from the server... 
    res.sendfile(__dirname+'/client/google_maps.html'); 
    //receiving requests from jQuery 
}); 

我沒有使用Express項目結構或Express中間件或Express配置來執行此操作。

+0

什麼靜態文件「然而,網頁呈現完美,當我直接打開網頁。」意思是,與你之前寫的內容相反?它看起來像沒有爲圖像和JS文件定義路線,但僅限於HTML文件。 –

+0

另外,你可能想從這個例子中刪除'var conn;',因爲它沒有被使用,只會覆蓋圖片。 –

+1

考慮使用快速/連接'靜態'中間件來爲您的靜態文件提供服務:http://www.senchalabs.org/connect/static.html –

回答

3

如果這就是你的所有代碼,我認爲你遇到的問題是合理的。您沒有告訴您的服務器在瀏覽器請求時如何回覆您的圖片和腳本。例如,在您的google_map.html文件中您有<script src="myjs.js"></script>,那麼您的瀏覽器會要求您的節點應用程序提供myjs.js的內容,但您的服務器不知道如何處理它。

你可以嘗試添加下面的代碼,看看它是否有幫助。

 
app.get('/myjs.js', function (req, res) { 
    res.sendfile(__dirname + '/myjs.js'); 
}); 

正如dimadima說,Express提供的模塊來處理,你可以使用像

 
app.use(express.static(__dirname + '/public')); 
相關問題