React フロントエンド アプリと Go API の両方を備えたサーバー セットアップで、存在しないフロントエンドにアクセスするルート (例: http://localhost:8090/my_frontend_path) を実行すると 404 エラーが発生します。これに対処するには、いくつかのアプローチがあります。そのうちの 1 つは、サーバー上で「キャッチオール」戦略を利用することです。
「キャッチオール」アプローチ
これこのメソッドにより、他の場所で明示的に処理されていないパスに対して、サーバーは必ずindex.htmlページを返します。フロントエンド アプリケーションは、index.html でロードされるため、ルーティング自体を処理できます。
Go での簡単な実装:
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) { // Return index.html if the requested file doesn't exist 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) } r.URL.Path = "/" } } fs.ServeHTTP(w, r) }) http.ListenAndServe(":8090", nil) }
ファイルの存在を確認してフォールバックすることにより、 index.html が見つからない場合、このコードは React ルーターがすべてのパスのルーティングを引き継ぎ、処理することを保証します。このアプローチは、未解決のルートをフロントエンドにリダイレクトするシンプルなサーバー側ソリューションを提供します。
以上がGo サーバーのフロントエンド ルートの 404 エラーを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。