2016-11-14 61 views
1

我正在使用node.js,我希望我的HTML文件能夠獲取JavaScript文件。Node.js HTML頁面錯誤404獲取javascript時

這是我和node.js的所謂server.js運行文件:

var app = require('express')(); 
var http = require('http').Server(app); 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

提出主辦index.html非常簡單的代碼。這個HTML文件中有一些腳本標籤:

<script type="text/javascript" src="./A.js"></script> 

<script type="text/javascript" src="./B.js"></script> 

<script type="text/javascript" src="./C.js"></script> 

而問題是,當我運行server.js,我去到瀏覽器我得到的控制檯上的錯誤:

GET http://localhost:3000/A.js 
GET http://localhost:3000/B.js 
GET http://localhost:3000/C.js 404 (Not Found) 

404 error not found

這些文件都在同一個目錄下,我不明白爲什麼它沒有得到腳本。

回答

0

server.js不知道如何處理,除了根頁面請求任何東西。當你打算

var express = require('express'); 
var app = express(); 
var http = require('http').Server(app); 

express.static('public') 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

現在在public文件夾中的所有文件將送達:(即使是http://localhost:3000/index.html將失敗,404)

添加express.static middleware從目錄提供文件服務。 (將您的* .js文件移動到名爲public的子文件夾中)

請參閱HyperDev default project template以獲得一個良好的交互式示例。

+1

是的謝謝:)代碼中缺少的唯一東西把聲明一個var express = require('express')然後app = express() –

+0

@NunoMiguelSilva:啊..修正它〜 – Leftium

0

嘗試尋找在Express1文檔提供靜態文件。

你跟這些行服務您的索引文件:

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

可以成爲JS文件以同樣的方式或者讓他們在一個文件夾public並添加app.use(express.static('public'))

然後,你可以參考它們作爲public/A.js

+0

在服務器上,文件將是'public/A.js',但它應該在HTML中被引用,只是'./ A.js' – Leftium