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 でスロークエリを有効にする方法の例

推薦する

MySQL DATEDIFF 関数を使用して 2 つの日付間の時間間隔を取得する方法

説明する2 つの日付間の時間間隔を返します。文法DateDiff(間隔、日付1、日付2 [、週の最初...

CSS3は光る境界線効果を実現します

操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

ウェブサイトのパフォーマンスを向上させるためのウェブサーバーの改善

<br />このシリーズの最初のセクションでは、Web サイトのパフォーマンスを向上させ...

CSSでサウンドを再生するいくつかのテクニック

CSS は、スタイル、レイアウト、プレゼンテーションの領域です。色彩、サイズ、アニメーションが溢れて...

WeChatミニプログラムマップの使い方を詳しく解説

この記事の例では、WeChatアプレットマップで使用される具体的な実装コードを参考までに共有していま...

a タグにはテキストと画像があります。テキストを非表示にして画像のみを表示するにはどうすればよいでしょうか?

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

Webpack プロジェクトでローダー プラグインをデバッグする方法

最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...

あなたをエキスパートに見せるための 13 個の JavaScript ワンライナー

目次1. ランダムなブール値( true / false )を取得する2. 指定された日付が営業日で...

MySQLからClickHouseに移行する5つの方法

データ移行は、MySQL から ClickHouse にインポートする必要があります。概要プランは以...

Web開発で使用される基本的な概念と技術の紹介

本日は、Web 開発で使われる基本的な概念と技術を初心者向けに紹介します。A から Z まで合計 2...

ubuntu16.04 で nginx を完全にアンインストールするための関連コマンド

nginx の概要nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリバース プ...

MySQLの大規模テーブル最適化ソリューションについての簡単な説明

背景Alibaba Cloud RDS for MySQL(MySQL バージョン 5.7)データベ...

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...

Element-UI の Select と Cascader にポップアップ下部アクション ボタンを追加する方法

下図のように、 selectポップアップレイヤーの下部に操作ボタンを配置するのが一般的な設計方法です...