ホームページ > バックエンド開発 > Golang > Dockerコンテナ内のサーバー(静的reactjsファイルを提供)404ページが見つかりません

Dockerコンテナ内のサーバー(静的reactjsファイルを提供)404ページが見つかりません

PHPz
リリース: 2024-02-09 10:30:24
転載
606 人が閲覧しました

Dockerコンテナ内のサーバー(静的reactjsファイルを提供)404ページが見つかりません

phpエディタBaicaoは、Dockerコンテナで静的ReactJSファイルを提供する際の404ページが見つからない問題を解決する方法を紹介します。 Docker を使用してアプリケーションをデプロイするときに、この問題に直面することがありますが、いくつかの簡単な手順で解決できるため、心配しないでください。この記事では、静的 ReactJS ファイルを提供するように Docker コンテナを適切に構成する方法と、404 ページが見つからないエラーを回避する方法を紹介します。見てみましょう!

質問内容

ポート 8000 で静的ファイルを提供する Go アプリケーションをコンテナ化しようとしています。このトピックに関する他の投稿を見てみましたが、多くは router.Run("0.0.0.0:8000") または router.Run(":8000")## を使用するようにと言っているようです。 # 。両方試しましたが、まだ成功しません。私の main.go は次のようになります: リーリー

および次の Dockerfile:

リーリー

私のフォルダー構造は次のとおりです;

リーリー

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("0.0.0.0:8000")

router.run("localhost:8000") または docker run --network を使用してみましたhost --name ポータル ポータル 何か見逃したことがありますか?フロントエンド ビルドを間違った場所にコピーしたのでしょうか?

回避策

最終イメージの唯一のコンテンツは、最後の

FROM

行の後に COPY した内容、つまり mainバイナリと .env ファイル。 ./frontend/... からファイルを提供しようとしていますが、これは最終イメージには含まれていません。関連する COPY 行を最終ステージに移動するだけです。 リーリー 代わりに、ビルドされたフロントエンド コードをバイナリに直接埋め込むために

embed

パッケージを使用していないため、(Go) ビルド フェーズでは必要ありません。 Dockerfile を再配置せずに

embed

を使用しても機能する場合があります。これはおおよそ のようになります。 リーリー このセットアップでは、フロントエンドは Go ビルド ステップの一部である必要がありますが、現在はバイナリに完全に含まれているため、最終イメージに個別にコピーする必要はありません。

以上がDockerコンテナ内のサーバー(静的reactjsファイルを提供)404ページが見つかりませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート