2014-03-13 3 views
0

자바 스크립트가 HTML 페이지의 일부일 때 잘 작동하는 Node.js 서버를 만들었습니다. JS를 다른 파일로 이동하고 일부 이미지를 추가했습니다. 이제 이미지 나 JS를 브라우저에로드하지 않습니다. 그러나 웹 페이지를 직접 열면 웹 페이지가 완벽하게 렌더링됩니다. 내 서버는 다음과 같습니다.노드 js를 사용하여 브라우저에 이미지와 자바 스크립트 파일을 보내려면 어떻게합니까

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의 내용을 제공하도록 요청하지만 서버는 처리 방법을 모릅니다.

아래와 같은 코드를 추가하여 도움이되는지 확인할 수 있습니다. dimadima 말했듯이

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

, 고속 당신이 무엇을

 
app.use(express.static(__dirname + '/public')); 
관련 문제