2013-07-18 3 views
1

각도를 사용하여 express 앱으로 node.js를 시작합니다. cloud9에서 앱을 만드는 동안 모든 것이 잘 작동했습니다.Node.js 정적 파일 대신 index.html을 제공하는 Express

방금 ​​내 ec2 인스턴스에서 응용 프로그램을 릴리스하고 지금 노드는 정적 파일 대신 index.html을 제공합니다 ... 크롬 디버그 네트워크를 보면 모든 js 파일이로드 된 것을 볼 수 있지만 (상태 200) 미리보기, 내 index.html 파일 ... 내 js 파일의 유형도 텍스트/HTML로 설정되어 있습니다 ...

여기 내 작은 각도의 데이터를 위조하여 라우팅하지 않습니다. 현재 서버에 대한 호출 없음 ...)

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가 얻을 : 난 그냥 내 모든 파일을 삭제하고 다시 업로드했습니다. 같은 문제! 나는 이것에 대한 도움이 정말로 필요하다!

문제의 라이브 데모 FO

, 당신은 당신이 당신의 '정적 파일'가 무엇을 의미하는지에 정교한

+0

어떻게 jquery.min.js 올바른 보여주는 80 -j REDIRECT --to 81 개 **

감사 --dport TCP? 또한 공용 디렉토리의 모든 파일이 유효한지, 내 서버에서 서비스하는 대신 cdn에서로드되기 때문에 index.html – user568109

+0

jQuery.min.js의 복사본이 올바로로드되지 않았는지 확인할 수 있습니다. js 파일이 원래 index.html이 아닌 복사본인지 확인하기 위해 가능한 한 빨리 살펴볼 것입니다. (직장에서 ssh 액세스가 없습니다 : /) – Doum

+0

나는 체크를했고 내 JS/CSS 파일은 괜찮습니다. 그들이 무엇을 포함해야 하는지를 포함합니다. 누구든지이 문제를 해결할 생각이 있습니까? – Doum

답변

1

무엇이 원인인지에 대한 몇 시간의 연구가 끝난 후 마침내 발견했습니다!

문제는 코드와 전혀 관련이 없습니다. 나는 새로운 ec2 인스턴스를 때리고 내 node.js 앱 (81 **)에 포트 80을 연결하지 않았다.

기본적으로이 명령을 실행하면 모든 것이 올바르게 작동하기 시작합니다.

의 iptables -t NAT -A PREROUTING -p 여러분 모두

4

that site 충돌? 이 라인에

: 정적 파일과 '공공'디렉토리에있는 모든 파일을 제공하기 위해 라우팅 명시했다

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

. 기본적으로 express.static은 해당 디렉토리가 호출되면 'index.html'을 제공합니다. 'public'dir을 '/'에 사용하고 있기 때문에 index.html을 제공하고 있습니다.

편집 :이 문제가 있는지 확실하지 않습니다,하지만 코드의이 부분이 중복 :

http.createServer(app).listen() 

말 만 할 수 있습니다 (명시 적 호출 때문에

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

) 서버를 만들었습니다. 도움이되는 희망은 입니다.

+0

정적 파일은 자바 스크립트 파일과 스타일 시트 파일을 의미합니다. 내 루트 디렉토리에 server.js가 있고/Public/js/Public/css에 있습니다. '/'를 호출하고 js 파일을 제공 할 때 index.html을 제공하도록 어떻게 만들 수 있습니까? – Doum

+0

http.createServer를 제거했습니다! 당신이 말했듯이, 여분입니다! 불행히도 문제는 해결되지 않았습니다 ... – Doum

관련 문제