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 解凍版インストールガイド

推薦する

CentOS8.0 で FTP サーバーをインストールして設定する方法

CentOS8.0-1905 のリリース後、FTP サーバーを CentOS の新しいバージョンに移...

MySQL データベース テーブルのパーティション分割に関する考慮事項 [推奨]

テーブル パーティショニングは、データベース パーティショニングとは異なります。では、テーブル パー...

ページスピードの最適化の概要

インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...

Dockerレジストリイメージ同期の実装アイデア

はじめに以前は、Docker イメージは Azure のコンテナー レジストリに保存されていました。...

フロントエンドJavaScriptの約束

目次1. Promiseとは何か2. 基本的な使い方3. Promiseメソッド3.1 Promis...

HTML テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

Windows 10 での mysql5.5 データベース コマンドラインの中国語文字化け問題を解決する

システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...

threejs でリアルタイムポリゴン屈折を実装する方法

目次序文ステップ1: セットアップと前方屈折ステップ2: 反射とフレネル方程式ステップ3: 多面屈折...

Vue3でelement-plusを使用する方法の詳細な説明

目次1. インストール2. main.jsにインポートする3. 使用Vue3がリリースされてからしば...

dockerを使用してGrafana+Prometheus構成をデプロイする

docker-compose-monitor.yml バージョン: '2' ネットワ...

CSSを使用してAndroidシステムの読み込みアニメーションを実装する

Web には一般的な読み込みアイコンが 2 つあります。1 つは iOS の「菊」、もう 1 つは ...

Centos8環境でSSHポート番号を変更する方法

目次序文始める序文サーバーのデフォルトの SSH ポート番号は通常 22 であるため、ほとんどのユー...

JavaScriptで配列を作成する方法の詳細な説明

目次JavaScript で配列を作成する配列の使用配列を分割文字列に変換する配列に要素を追加する配...

Web ページの HTML コードの説明: 順序付きリストと順序なしリスト

このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...

html2canvas で破線境界線を実装する例

html2canvas は、HTML 要素からキャンバスを生成するライブラリです。描画されるキャンバ...