phpエディタBaicaoは、Dockerコンテナで静的ReactJSファイルを提供する際の404ページが見つからない問題を解決する方法を紹介します。 Docker を使用してアプリケーションをデプロイするときに、この問題に直面することがありますが、いくつかの簡単な手順で解決できるため、心配しないでください。この記事では、静的 ReactJS ファイルを提供するように Docker コンテナを適切に構成する方法と、404 ページが見つからないエラーを回避する方法を紹介します。見てみましょう!
ポート 8000 で静的ファイルを提供する Go アプリケーションをコンテナ化しようとしています。このトピックに関する他の投稿を見てみましたが、多くは router.Run("0.0.0.0:8000")
または router.Run(":8000")## を使用するようにと言っているようです。 # 。両方試しましたが、まだ成功しません。私の main.go は次のようになります:
リーリー
リーリー
私のフォルダー構造は次のとおりです;リーリー
go run main.go を使用してローカルで実行すると、フロントエンドはポート 8000 で正しく動作し、http://localhost:8000 の読み込みは正常に動作します。 docker build -t Portal .
を使用して docker イメージをビルドし、docker run -p 8000:8000 --name Portal Portal
を使用して実行すると、ターミナルにサーバーが表示されます。が起動し、ポート 8000 で実行されていると表示されますが、404 Page Not Found エラーが発生し続けます。
、router.run("localhost:8000")
または docker run --network を使用してみましたhost --name ポータル ポータル
。
何か見逃したことがありますか?フロントエンド ビルドを間違った場所にコピーしたのでしょうか?
回避策
行の後に COPY
した内容、つまり main
バイナリと .env
ファイル。 ./frontend/...
からファイルを提供しようとしていますが、これは最終イメージには含まれていません。関連する COPY
行を最終ステージに移動するだけです。
リーリー
代わりに、ビルドされたフロントエンド コードをバイナリに直接埋め込むために
パッケージを使用していないため、(Go) ビルド フェーズでは必要ありません。
Dockerfile を再配置せずに
を使用しても機能する場合があります。これはおおよそ のようになります。
リーリー
このセットアップでは、フロントエンドは Go ビルド ステップの一部である必要がありますが、現在はバイナリに完全に含まれているため、最終イメージに個別にコピーする必要はありません。
以上がDockerコンテナ内のサーバー(静的reactjsファイルを提供)404ページが見つかりませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。