인텔 IDEA를 사용하여 golang을 개발합니다.하지만 디버그를 사용하여 프로젝트를 빌드 할 때이 라인을 디버그 할 때 http.ServeFile(w, r, "./static/html/login.html")
일 때 404 not found
이 표시되지만 명령 실행에서이 정적 페이지를 얻을 수 있습니다.http.ServeFile은 정적 소스를 가져올 수 없지만 실행 명령은
0
A
답변
0
경로 "./static/html/login.html"
은 상대 경로입니다. go run ...
을 사용할 때 현재이 상대 경로가 올바르게 해석되는 디렉토리에 있습니다. IntelliJ 바이너리가 소스와 다른 디렉토리에서 실행되어이 상대 경로가 올바르지 않을 수 있습니다.
ServeFile(...)
호출시 절대 경로를 사용하거나, 작업 디렉토리로 이동 디렉토리에서 go 명령을 실행하도록 IDE를 구성하거나, 지정된 경로를 루트로 사용하도록 응용 프로그램을 구성 할 수 있습니다. 귀하의 정적 콘텐츠. 처음 두 옵션은 일시적으로 문제를 해결합니다. 바이너리를 배송해야하는 경우 현재 발생하는 것과 동일한 문제가 발생할 수 있습니다. 세 번째 옵션은 경로가 사용자에 의해 명시 적으로 정의 될 수 있으므로 응용 프로그램이 모든 환경을 처리 할 수있게합니다.