Go의 net/http 패키지에서 웹 서버의 "파일 시스템 루트"는 다음과 같습니다. 실행 파일 디렉토리에 직접 연결되지 않습니다. 대신 서버에 등록된 핸들러에 따라 다릅니다.
핸들러는 들어오는 HTTP 요청을 처리하기 위한 논리를 제공합니다. 핸들러를 등록할 때 개발자는 핸들러가 제공할 URL 패턴을 지정할 수 있습니다. 지정된 "루트" URL은 없으며 핸들러는 모든 URL 접두사에 매핑될 수 있습니다.
정적 파일 서버 기능이 필요한 경우 http 패키지는 FileServer() 기능을 제공합니다. 디렉터리를 입력으로 사용하고 해당 디렉터리에서 정적 파일을 제공하는 핸들러를 반환합니다.
FileServer()를 사용할 때 정적 파일의 "루트"가 매개변수로 지정됩니다. 절대 경로를 제공하면 지정된 폴더를 직접 참조합니다.
단, 상대 경로를 사용하면 현재 또는 작업 디렉터리를 기준으로 해석됩니다. 기본적으로 이 폴더는 애플리케이션이 시작되는 폴더입니다.
예를 들어 다음을 사용하여 핸들러를 등록하는 경우:
http.Handle("/", http.FileServer(http.Dir("/tmp")))
핸들러는 "/tmp"에서 정적 파일을 제공합니다. " 디렉토리, 루트 URL "/"는 이 디렉토리에 매핑됩니다.
디렉토리를 다른 URL 경로에 매핑하려면 StripPrefix() 함수를 사용할 수 있습니다. 예를 들어, "/tmpfiles" URL 접두사 아래에 "/tmp"를 제공하려는 경우 다음을 사용할 수 있습니다.
http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
이렇게 하면 요청 URL에서 "/tmpfiles" 접두사가 삭제되기 전에 제거됩니다. FileServer에 의해 처리됩니다.
웹 애플리케이션을 설정하고 URL 접두어를 원하는 파일이나 핸들러에 올바르게 매핑하려면 이러한 개념을 이해하는 것이 중요합니다.
위 내용은 Go의 `net/http` 패키지는 웹 서버의 파일 시스템 루트를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!