브라우저에서 "/my_frontend_path"와 같은 경로에 직접 액세스하면 GoLang이 대신 404 오류를 반환합니다. 프론트엔드 React에 라우팅을 위임하는 것 router.
가장 큰 문제는 React 라우터가 초기화되기 전에 이러한 경로에 액세스할 때 서버가 요청을 처리하고 오류를 반환한다는 것입니다.
간단한 서버 측 "포괄적" 접근 방식을 구현하여 지원되지 않는 모든 경로를 프런트엔드 라우터로 리디렉션할 수 있습니다. 이 접근 방식은 요청한 파일이 없는 경우 index.html 페이지를 반환하여 React 라우터가 라우팅을 처리할 수 있도록 하는 방식으로 작동합니다.
const FSPATH = "./build/" func main() { fs := http.FileServer(http.Dir(FSPATH)) http.HandleFunc("/my_api", func(w http.ResponseWriter, _ *http.Request) { w.Write([]byte("API CALL")) }) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // If requested file exists, return it; otherwise, return index.html if r.URL.Path != "/" { fullPath := FSPATH + strings.TrimPrefix(path.Clean(r.URL.Path), "/") _, err := os.Stat(fullPath) if err != nil { if !os.IsNotExist(err) { panic(err) } // Requested file does not exist, return index.html r.URL.Path = "/" } } fs.ServeHTTP(w, r) }) http.ListenAndServe(":8090", nil) }
이 구현에서는:
이 방법은 존재하지 않는 파일에 대해 index.html을 반환하므로 'favicon.ico'와 같은 파일에 문제가 발생할 수 있습니다. 이러한 경우 리디렉션을 특정 확장자로만 제한하기 위해 추가 검사를 추가할 수 있습니다.
위 내용은 404 오류를 피하기 위해 GoLang에서 프런트엔드 경로를 리디렉션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!