Nginx に React プロジェクトをデプロイする方法の例

Nginx に React プロジェクトをデプロイする方法の例

テストプロジェクト: react-demo

  1. react-demo プロジェクトをサーバーにクローンします (デフォルトでは Github がプロジェクトの管理に使用されます)
  2. 必要に応じて、node.js、yarn などのプロジェクト環境をインストールしてください。
  3. プロジェクトディレクトリに入り、npm run buildを実行してプロジェクトのビルドを開始します。
  4. ビルドが成功すると、dist フォルダーが生成されます (プロジェクトの構成によって異なります)。このフォルダー内の静的ファイルは、プロジェクトのアクセス ファイルです。
  5. Linux サーバーで Nginx を構成するには、/etc/nginx/sites-enabled に移動し、管理者として react プロジェクト用の新しい構成ファイル (react-demo.conf など) を作成し、ファイルを編集します。
サーバー{
  8080を聴く;
  # server_name your.domain.com;
  ルート /home/root/react-demo/dist;
  インデックス index.html index.htm;
  位置 / {
    try_files $uri $uri/ /index.html;
  }
  場所 ^~ /assets/ {
    gzip_static オン;
    有効期限が最大になります。
    add_header Cache-Control パブリック;
  }
  エラーページ 500 502 503 504 /500.html;
  クライアントの最大ボディサイズは20Mです。
  キープアライブタイムアウト10;
}

sudo service nginx restart を実行して、Nginx サービスを再起動します。

プロジェクトにアクセスするには、http://IP:8080/ にアクセスしてください。

注記:

1.ドメイン名を設定する場合は、ポート80が必要です。成功すると、ドメイン名にアクセスするだけでプロジェクトにアクセスできます。

2. React-Router の browserHistory モードを使用する場合は、Nginx 設定に次の設定を追加してください。

位置 / {
  try_files $uri $uri/ /index.html;
}

原則として、プロジェクトにはルート エントリが 1 つしかないため、/home のような URL を入力してもページは見つかりません。この場合、nginx は index.html を読み込もうとします。index.html を読み込んだ後、react-router が動作し、入力した /home ルートと一致し、正しいホームページが表示されます。browserHistory モードのプロジェクトが上記の内容で構成されていない場合、404 エラーが発生します。

react-router のドキュメントを参照してください:

https://react-guide.github.io/react-router-cn/docs/guides/basics/Histories.html

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Threejs、Didi公式サイトのホームページに地球アニメーション機能を実現
  • 3DエンジンthreeJSを使用して星の粒子の動きの効果を実現
  • Reactプロジェクトのパッケージアドレス(コンパイル出力ファイルアドレス)を変更する方法の詳細な説明
  • React プロジェクトでの Less のインストールと使用方法の詳細な説明 (使用方法の概要)
  • Reactプロジェクトでアイコンフォントを使用する方法
  • Jenkinsを使用してReactプロジェクトをデプロイする方法
  • React と Threejs を使用して VR パノラマ プロジェクトを作成する詳細なプロセス

<<:  jQueryで劇場の座席選択と予約の効果を実現

>>:  最新バージョンMySQL5.7.19 解凍版インストールガイド

推薦する

React Native の基本原則の深い理解 (Bridge of React Native)

この記事では、React Native の基本をすでに理解していることを前提とし、ネイティブと Ja...

ネイティブJSが様々なスポーツの均一な動きを実現

この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...

.htaccess を使用して特定の IP からの Web サイトへのアクセスを禁止する方法

序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...

Apache Flink の任意の Jar パッケージのアップロードにより、リモート コード実行の脆弱性が再発する問題が発生する (脆弱性警告)

脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...

検証例 MySQL | 同じ値を持つフィールドを更新すると、binlog に記録されます

1. はじめに数日前、開発仲間から、フィールドを同じ値に更新すると binlog が記録されるかどう...

大きなオフセットによる MySQL 制限ページングが遅い理由と最適化ソリューション

MySQL では通常、limit を使用してページ上のページング機能を完了しますが、データ量が大きな...

iframeを使用してページを呼び出すとページがキャッシュされるかどうかの簡単な分析

最近、毎日変更されるページを iframe を使用して呼び出す必要があるプロジェクトがあります。その...

node.js でマルチコア CPU を最大限に活用する方法

目次概要node.js でマルチコア CPU を最大限に活用する方法Node で子プロセスを作成する...

CSSでスペースを処理する方法

1. 宇宙のルールHTML コード内の空白は通常、ブラウザによって無視されます。 <p>...

Linux (Centos7) での redis5 クラスターの構築と使用方法の詳細な説明

目次1. 簡単な説明2. クラスターを作成する手順2.1. ディレクトリを作成する2.2. ソースコ...

nginxリバースプロキシを介したデバッグコードの実装

背景現在、会社のプロジェクトは、フロントエンドとバックエンドが分離された方法で開発されています。新し...

Bash で山括弧を使用するその他の方法

序文この記事では、山括弧のその他の用途をさらに詳しく見ていきます。前回の記事では、山括弧 (<...

現在のマウススライドの座標を取得するVue+openlayer5メソッド

序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...

Linuxカーネルスケジューラソースコード初期化の分析

目次1. はじめに2. スケジューラの基本概念2.1. 実行キュー (rq) 2.2 スケジューリン...

Node.js組み込みモジュールの詳細な説明

目次概要1. パスモジュール2. モジュールまで3. fsモジュール4. イベントモジュール5. h...