아주 간단한 질문이지만 많은 문제가 있습니다.NodeJS URL 요청, 절대 또는 상대?
다음 두 가지 경우의 차이점은 무엇입니까?
index.html
- script src="script/a.js"
- script src="/script/a.js" // starting with slash
내 서버가이 요청을 처리 할 수있는 이유
app.get('/script/a.js', function(req, res){ // with slash
res.sendfile(__dirname + '/realfolder/script/a.js');
});
에 상관없이 클라이언트 측의 URL의 SRC 내가 방금 언급 한 두 각 호의 어느 하나에 해당하는 경우 경우입니다 (슬래시로 시작)? 나는 다음과 같은 방법으로 요청을 처리하는 경우
반면에, 난 항상 404 오류가 발생했습니다 제 생각에는app.get('script/a.js', function(req, res){ // without slash
res.sendfile(__dirname + '/realfolder/script/a.js');
});
은 경로가 '/'는 루트 폴더를 의미에서 시작 (슬래시없이 시작) 다른 응용 프로그램은 __dirname의 상대 경로를 의미합니다. 그리고 왜 내 서버가 app.get ('script/a.js') 처음에는 슬래시가없는이 요청을 처리 할 수없는 이해할 수 없습니까?
뭐가 잘못 되었나요?
감사합니다. 나는이 개념을 알고 있다고 생각합니다. 하지만 여전히 내 서버가 app.get ('script/a.js') 시작 부분에 스플래시가없는이 요청을 처리 할 수 없다는 것을 이해할 수 없습니까? – Kevin
음, 상대 경로가 작동하지 않을 때 첫 번째 질문은 다음과 같습니다. 'main' 폴더에 있습니까? 'subfolder1' 안에요? 귀하의 경우, 귀하의 노드 애플 리케이션은 어디에서 실행됩니까? 참조 : http://nodejs.org/docs/v0.4.2/api/process.html#process.cwd 또는 절대 경로를 사용하십시오. – TheBronx
한 가지만 확인하십시오. 실패한 상대 경로가 표시되면 서버 측에서 앱 루트 (process.cwd())에서이 파일을 찾으려고합니다. – Kevin