2014-06-05 6 views
1

내가 URL 192.168.1.200:8080/index.html 작동하지만 192.168.1.200:8080 또는 192.168.1.200:8080/를 사용하는 경우 404 Not Found를 제공 virDir.serveRequest(request);에 의해 요청을 제공하는 간단한 다트 HTTP 서버 실행이 작동하지 않습니다. 나, 아마 naively, 비록 기본값은 자동이었다. BTW 이것은 나에게 모두 새로운 것입니다.다트 HTMLrequest 기본값은

HTMLServer의 기본 설정을 알지 못했지만 어떻게 완성 되었습니까?

내가 기본값을 사용하여 사용을 감지하고 올바른 파일 이름을 계산 할 수있었습니다하지만 브라우저로 전달하는 방법을 이해하지 않습니다

(편집) :

_processRequest(newPath, request) { // new path is index.html 
    File file = new File(newPath); 
    file.exists().then((found) { 
    if(found) { 
     file.openRead().pipe(request.response); // probably dies here 
     } 
    else { 
    _send404(request.response); 
    } 
    }); 
} 

여전히 index.html 파일을 제공 할 수 없습니다. VirtualDirector.serveFile()을 사용해 보았지만 기본 index.html 파일을 처리하려고 할 때 작동하지 않습니다. 나는 예를 따라하려고 시도했다.

final HTTP_ROOT_PATH = Platform.script.resolve('../web').toFilePath(); 
final virDir = new VirtualDirectory(HTTP_ROOT_PATH) 
    ..jailRoot = false // process links will work 
    ..followLinks = true 
    ..allowDirectoryListing = true; 

var dir = new Directory(virDir.root); 
var indexUri = new Uri.file(dir.path).resolve('/index.html'); 
virDir.serveFile(new File(indexUri.toFilePath()), request); 

I 출력이) ('/index.html이를'이 인쇄 indexUri.toFilePath을 실행하면

내 코드 인와/SRV/fireimager/bin 및 /는 SRV/fireimager/웹에서 후자의 가상 디렉터리 루트. 사용자가 url에 /index.html을 지정하지 않았다는 것을 감지하면 아무런 에러도 발생하지 않으며 javascript 콘솔에 아무 것도 표시되지 않으므로 브라우저에 아무 것도 전달되지 않습니다.

분명히 VirtualDirectly.serveFiler를 사용하는 방법을 이해하지 못합니다.

+0

아파치를 사용하는 경우 http://127.0.0.1/ 또는 http : // localhost –

+0

비슷한 질문이 있습니다. (조금 구식이긴하지만) http://stackoverflow.com/questions/13081740 –

+0

해당 링크가 도움이되었습니다. 나하지만 적어도 논리 오류가 있습니다. –

답변

0

기본 페이지 또는 index.html은 브라우저가 아니라 서버에서 가정합니다.

귀하가 원하는 것은 귀하의 요청이 끝나는 지 확인하십시오. 내 서버에서 "/"로 끝나는 지 확인합니다. "/"로 끝나면 내 기본 페이지를 열고 보냅니다.

또한 요청하지 않은 영역에 액세스하려고 시도하지 않도록 요청을 확인해야합니다. 경로 세그먼트에서 ".."를 확인하십시오. 가지고 있다면, 아마도 연결을 죽이고 싶을 것입니다.

+0

사용자가 '192.168.1.200:8080'을 입력하면 요청이 서버에 의해 액세스 될 때까지 '192.168.1.200:8080/'으로 수정됩니까? –

+0

제 경험상 yes /가 자동으로 추가됩니다. – ptDave

+0

브라우저에서 요청할 때 모든 요청은 /로 시작합니다. – ptDave