URL 재 작성으로 인해 내장 디렉토리 렌더링을 올바르게 탐색 할 수없는 노드 응용 프로그램에서 Express와 일치하지 않는 문제가 발생했습니다. /web/content
의 내용이 위의 동네 짱 - 간단한 Express 서버를 사용디렉토리를 탐색 할 때 ExpressJS에서 경로를 잘못 다시 작성합니다.
var express = require('express');
var app = express.createServer();
app.use("/public", express.static("/web/content"));
app.use("/public", express.directory("/web/content"));
app.listen(8888);
당신이 localhost:8888/public
로 이동하면 링크 목록으로 표시됩니다 : 그것은 코드로 설명하는 것이 더 쉽습니다. 따라서, 예를 들어 :
..
index.html
header.jpg
js (folder)
css (folder)
는 거기에서 나는 그들이 올바르게 표시 index.html
또는 header.jpg
를 클릭하면,하지만 링크가 명확하게 localhost:8888/public/js
리드에도 불구하고, localhost:8888/js
(예를 들어)로 이동 한 것 중 하나 폴더를 클릭. 추가 검사를 통해 요청이 올바른 경로 (/public/js
)로 전송되었지만 서버가 301 - Moved Permanently
응답을 반환하고 브라우저를 /js
으로 리디렉션합니다. 그러면 콘텐츠를 찾을 수 없기 때문에 오류 페이지가 표시됩니다. (아니, 정말로?)
이러한 폴더 아래 특정 파일 (예 : localhost:8888/public/js/main.js
)을 요청하면 동일한 문제가 발생하지 않습니다.
끔찍한 부분은 내 개발자 상자에서 잠시 동안 이렇게하고 간단히 ... 중지되었습니다. 이유를 모르겠다. 그러나 배포를 시도 할 때 프로덕션 서버는 내 dev 환경에서 더 이상 재생할 수 없어도 동일한 문제가 발생하기 시작했습니다. 누구든지 익스프레스가 내 URL을 잘못된 것으로 다시 쓰는 데 너무 의도적 인 것처럼 보이는 이유를 알고 있습니까?