2013-07-18 39 views
1

我開始使用角度的快速應用程序node.js。在cloud9上創建應用程序時,一切正常。Node.js快速服務index.html而不是靜態文件

我剛剛在我的EC2實例上發佈了應用程序,現在節點總是提供index.html而不是我的靜態文件......當我查看鉻調試網絡時,我看到加載的所有js文件(狀態200),但是當我預覽他們,我的index.html文件...我的js文件的類型也設置爲文本/ html ...

這是我的小server.js(沒有路由,因爲我僞造我的角度數據,所以現在沒有電話給服務器......)

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

var app = express(); 

var logFile = fs.createWriteStream('./logger/express.log', {flags: 'a'}); //use {flags: 'w'} to open in write mode 

app.configure(function() { 
    app.set('port', process.env.PORT || 3000); 
    app.use(express.logger({stream: logFile})); 
    app.use(express.bodyParser()), 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 

/*app.get('/events', eventRoute.getEvents); 
app.post('/events', eventRoute.saveEvent);*/ 

http.createServer(app).listen(app.get('port'), function() { 
    console.log("Express server listening on port " + app.get('port')); 
}); 

正如我前面所說,一切工作正常cloud9(現在不能嘗試在本地......)。

有沒有人有什麼問題的線索?

感謝

多米尼克

PS:我忘了提,這是我的CSS文件一樣!

編輯:這裏是我的意思的小圖片! enter image description here

而當我看到任何文件的預覽我得到enter image description here

EDIT2:我只是刪除我的所有文件,並再次上傳它們。同樣的問題!我真的需要這個幫助!

佛問題的現場演示,打that site

+0

如何jquery.min.js顯示正確的嗎?您還可以檢查公共目錄中的所有文件是否有效,而不是您的index.html – user568109

+0

jQuery.min.js的副本加載正確,因爲它是從cdn加載的,而不是由我的服務器提供服務。我會盡快查看我的js文件是否仍然像原始文件,而不是index.html的副本。 (沒有ssh acces在工作:/) – Doum

+0

我沒有檢查,我的JS/CSS文件沒問題。包含他們應該包含的內容。任何人有想法解決這個問題? – Doum

回答

1

經過幾個小時的研究後,我終於找到了它!

問題根本不是代碼相關!我正在打一個新的ec2實例,並且沒有將80端口路由到我的node.js應用程序(81 **)。

我基本上只是運行這個命令,一切開始工作就好了。

的iptables -t NAT -A PREROUTING -p tcp的--dport 80 -j REDIRECT --to 81 **

感謝大家

4

你能對你的意思是你的「靜態文件」詳細說明了什麼?

在這條線:

app.use(express.static(path.join(__dirname, 'public'))); 

你有快路由到服務於「公共」目錄的靜態文件的所有文件。默認情況下,如果該目錄被調用,express.static將提供'index.html'。由於您正在爲'/'提供'公共'目錄,因此它會提供index.html。

編輯:我不知道,如果是這樣的問題,但是這部分代碼是多餘的:

http.createServer(app).listen() 

你可以說:

app.listen([port], [callback]); 

因爲調用快車()創建一個服務器。 希望有所幫助。

+0

靜態文件我的意思是我的Javascript文件和我的樣式表文件。 我在我的根目錄中有server.js,然後是/ Public/js/Public/css。 我怎樣才能讓它在調用'/'時爲index.html服務,然後提供js文件? – Doum

+0

我刪除了http.createServer!正如你所說,它是多餘的! 不幸的是,問題仍然沒有解決... – Doum

相關問題