Nginx で Angular プロジェクトを展開する際の落とし穴

Nginx で Angular プロジェクトを展開する際の落とし穴

コンパイル後にAngularプロジェクトをNginxにデプロイする方法をオンラインで検索すると、ほとんどの記事で、更新によって発生する 404 の問題を回避するために、 Nginx構成ファイルのlocationにホームページへのジャンプを指定する必要があると説明されています。完全なserverコードは次のとおりです。

サーバー{
 聞く 80;
 サーバー名 192.168.190.131;

 #sendfile オン;
 #文字セット koi8-r;
 access_log /var/log/nginx/host.access.log メイン;

 位置 / {
  ルート /chanchaw/app/angular;
  インデックス index.html index.html;
  try_files $uri $uri/ /index.html;
 }

 エラーページ 404 /index.html;

 場所 = /index.html {
  ルート /chanchaw/app/angular;
 }
}

上記のserver_nameの後にCentOS7.3の IP アドレスが続きます。次のlocationに特に注意してください: try_files $uri $uri/ /index.html 。これは、 Nginxを更新することによって発生する 404 エラーを防ぐためです。ここで問題になります。Nginx にデプロイした後、ブラウザ テストで次の問題が発生します。

index.htmlファイルとjsファイルは同じディレクトリにあるのに、なぜ見つからないのでしょうか? chromeこんな感じ、 firefoxもこんな感じ、では IE を試してみましょう。

解決する

chromefirefox自動的にhttphttpsに変換してリクエストを行うことが判明しており、実験に使用したCentOS仮想マシンにインストールされており、 sslを導入することは考えていませんでした。 ieプロトコルの変換を行わないため、 ie上でテストしても問題ありません。

以下もご興味があるかもしれません:
  • Angular プロジェクトの作成、パッケージ化から nginx の展開までの全プロセスを記録します。

<<:  NodeJSのモジュール性に関する詳細な説明

>>:  MySQL でスロークエリを有効にする方法の例

推薦する

Vueはvueメタ情報を使用して各ページのタイトルとメタ情報を設定します。

title: vue は vue-meta-info を使用して各ページのタイトルとメタ情報を設定...

MySQL 5.7.10 winx64 のインストールと設定方法のグラフィック チュートリアル (win10)

MySQL は比較的使いやすいリレーショナル データベースです。今日は、win10 システムを再イ...

docker公式mysqlイメージのカスタム構成の詳細な説明

インストール時間を節約するために、公式の mysql docker イメージを使用して mysql ...

SSHパスワードフリーログイン設定方法の詳しい説明(画像とコマンド)

まず、私たちがやりたいことは、serverA の usera を使用して、パスワードなしで serv...

js は複数の画像を zip にパッケージ化します

目次1. ファイルをインポートする2. HTMLページ3. メインコード4. 画像をbase64に変...

Linux でタスク用のカスタム システム トレイ インジケーターを作成する

システム トレイ アイコンは、今日でも魔法のような機能です。アイコンを右クリックして目的のアクション...

Mysql Workbench クエリ mysql データベース メソッド

Mysql Workbench はオープンソースのデータベース クライアントです。このオープンソース...

CSS3を使用してヘッダーアニメーション効果を作成する

Netease Kanyouxi公式サイト(http://kanyouxi.163.com/)(棚...

Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法

1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...

Linux での GDB 入門チュートリアル

序文gdb は Linux で非常に便利なデバッグ ツールです。コマンドライン モードのデバッグ ツ...

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

Docker データ管理 (データ ボリュームとデータ ボリューム コンテナー) の詳細な説明

実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共有す...

Nginx ロケーションマッチングルールの例

1. 文法 場所 [=|~|~*|^~|@] /uri/ { ... } 2. 説明上記の構文から、...