検索
ホームページ運用・保守NginxNginx は履歴モードでのページ更新の 404 問題をどのように解決しますか?

    事前知識

    • シングル ページ アプリケーション (SPA - シングル ページ アプリケーション)
      最初のページのみをロードしますtime このとき、HTML ページとそのパブリック静的リソースのみが返され、後続のページ ジャンプではサーバーから HTML ファイルがフェッチされません。 (ハッシュと履歴ルーティングは、ページを更新せずにブラウザ URL の変更を実装します)

    • ハッシュ ルーティング
      例: www.baidu.com/#/home、元々はハッシュを結合するために使用されます。アンカーポイントはページビューの制御を実現します #以降の値が変化してもページの再リクエストは行われません これは主にウィンドウの onhashchange メソッドによって実現されます。

    • ヒストリー ルーティング
      ハッシュ ルーティングと比較した場合、最も直感的な変更点は、ルーティングに # がないことです。window.history オブジェクトで一連のメソッドを呼び出すことにより、ページは更新されません。Jump(pushState, replaceState)。

    履歴モードでは、URL が変更されているため、この時点でページを手動で更新すると、ブラウザは新しいページを要求している (新しい HTTP 要求を開始している) と認識します。新しいページは存在しません (バックエンドが構成されていない場合) となり、404 が発生します。

    ブラウザに IP またはドメイン名を入力した後に何が起こるかを簡単に説明します (面接の質問のような感じです ????) Enter キーを押すと、ブラウザから送信された http が html をリクエストします。一連の転送とアドレス指定の解析の後、ファイルはターゲット IP が存在するサーバーのポート 80 (デフォルト) で受信されます。この時点で問題が発生します。サーバーの 80 インターフェイスが HTTP リクエストを受信した後、何かを返すには、今回は Nginx が静的リソース プロキシを実行する必要があります そしてどの静的ファイルを返すかをサーバーに指示します

    Nginx

    一般的なプロジェクトの場合デプロイメントでは、nginx.conf 構成ファイルを処理する必要があります。
    このファイルについて知っておくべきことは次のとおりです

       ....
       # http 是指令块,针对http网络传输的一些指令配置
       http {
           #文件扩展名与文件类型映射表 
           include mime.types;
           #设置客户端与服务端请求的超时时间
           keepalive_timeout  65;
           # 开启压缩功能,目的:提高传输效率,节省带宽 
           gzip on
           server {
              #监听端口
              listen   80;
              #服务命名,最好就是用这个服务器的域名命名
              server_name localhost;
              #指令块,配置外部访问资源和实际资源的对应关系
              location /{
                  root /usr/blog; #表示静态资源所在的目录
                  index  index.html index.htm; #访问这个路径对应的默认静态资源文件或者网页
              }
           }
       }

    location

    Syntax

       location [=|~|~*|^~|@] uri { ... } 
       location @name { ... }
    • =: 完全一致を示します

    • ~: 大文字と小文字を区別する正規一致を示します

    • ~*: 大文字と小文字を区別しない正規一致を示します

    • ^~: URI が正規の文字列で始まることを示します

    • !~: 大文字と小文字が区別される正規表現の不一致を示します

    • !~*: 大文字と小文字を区別しない通常の非一致を示します。

    • #/: ユニバーサル一致。あらゆるリクエストは

      # に一致します。
    • ##共通の一致ルール
    #
       # 将所有请求直接转发给服务器的9090端口
        location = / {
          proxy_pass http://127.0.0.1:9090/;
        }
        # 目录匹配 
        location ^~ /static/ { 
            root /webroot/static/;
        } 
        # 后缀匹配 
        location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { 
            root /webroot/res/; 
        }
        # 将/account/开始的请求转发给Account服务器
        location /account/ {
            proxy_pass http://127.0.0.1:8080/
        }
        # 将/order/开始的请求转发给Order服务器
        location /order/ {
            proxy_pass http://127.0.0.1:9090/
        }

    root と alias

    2 つの違いは、nginx が location の後の URL を解釈する方法です

    [root]
    構文: root path

    デフォルト値: root html
    設定セクション: http、server、location、if
    処理結果: root path + location path

    [alias]
    構文: alias path

    Configurationセクション:location
    処理結果:Use alias path to replace location path

       # 返回/www/root/html/t/a.html的文件
       location ^~ /t/ { 
           root /www/root/html/;
       } 
       # 返回/www/root/html/new_t/a.html的文件 
       # 把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。 
       location ^~ /t/ { 
           alias /www/root/html/new_t/; 
       }

    リフレッシュ後の404の問題を解決

    上記の知識から、更新後、ブラウザーは現在の URL で HTML ファイルを要求しますが、SPA には HTML ファイルが 1 つしかないため、nginx の対応する場所にコード行を構成する必要があることがわかります。 conf

    try_files $uri $uri/ /index.html;

    順番どおりかどうかを nginx に伝える ファイルが存在するかどうかを確認し、存在しない場合は、index.html ファイルにリダイレクトします。

    以上がNginx は履歴モードでのページ更新の 404 問題をどのように解決しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
    Nginxの使用:Webサイトのパフォーマンスと信頼性の最適化Nginxの使用:Webサイトのパフォーマンスと信頼性の最適化May 09, 2025 am 12:19 AM

    Nginxは、Webサイトのパフォーマンスと信頼性を改善できます。1。Webサーバーとしての静的コンテンツをプロセス。 2。逆プロキシサーバーとしての転送要求。 3。ロードバランサーとしてリクエストを割り当てます。 4.キャッシュサーバーとしてバックエンド圧力を下げます。 NGINXは、GZIP圧縮の有効化や接続プーリングの調整など、構成の最適化を通じてWebサイトのパフォーマンスを大幅に改善できます。

    Nginxの目的:Webコンテンツなどの提供Nginxの目的:Webコンテンツなどの提供May 08, 2025 am 12:07 AM

    NginxServesWebContentAndActSasaReverseProxy、loadbalancer、andmore.1)itefficientlyServestaticContentlikehtmlandimages.2)ItfunctionsasareSareProxyandloadbalancer、distributing trafficacrosservers.3)

    Nginxユニット:アプリケーションの展開を合理化しますNginxユニット:アプリケーションの展開を合理化しますMay 07, 2025 am 12:08 AM

    Nginxunitは、動的な構成と多言語サポートを使用して、アプリケーションの展開を簡素化します。 1)動的構成は、サーバーを再起動せずに変更できます。 2)Python、PHP、Javaなどの複数のプログラミング言語をサポートしています。 3)非同期非ブロッキングI/Oモデルを採用して、高い並行性処理パフォーマンスを改善します。

    Nginxの影響:WebサーバーなどNginxの影響:WebサーバーなどMay 06, 2025 am 12:05 AM

    Nginxは最初にC10Kの問題を解決し、現在、ロードバランス、リバースプロキシ、APIゲートウェイを処理するオールラウンドに発展しています。 1)イベント駆動型のアーキテクチャや非ブロッキングアーキテクチャで有名であり、高い並行性に適しています。 2)Nginxは、IMAP/POP3をサポートするHTTPおよびリバースプロキシサーバーとして使用できます。 3)その作業原則は、イベント駆動型および非同期のI/Oモデルに基づいており、パフォーマンスが向上しています。 4)基本的な使用には、仮想ホストと負荷分散の構成が含まれ、高度な使用には複雑な負荷分散とキャッシュ戦略が含まれます。 5)一般的なエラーには、構成の構文エラーと許可の問題が含まれます。また、デバッグスキルには、nginx-Tコマンドとstub_statusモジュールの使用が含まれます。 6)パフォーマンスの最適化の提案には、GZIP圧縮の使用、ワーカーパラメーターの調整、および

    nginxトラブルシューティング:一般的なエラーの診断と解決nginxトラブルシューティング:一般的なエラーの診断と解決May 05, 2025 am 12:09 AM

    nginxの一般的なエラーの診断とソリューションには、次のものが含まれます。1。ログファイルの表示、2。構成ファイルの調整、3。パフォーマンスを最適化します。ログを分析し、タイムアウト設定を調整し、キャッシュとロードバランスの最適化により、404、502、504などのエラーを効果的に解決して、ウェブサイトの安定性とパフォーマンスを向上させることができます。

    Nginxユニットを使用してアプリケーションの展開:ガイドNginxユニットを使用してアプリケーションの展開:ガイドMay 04, 2025 am 12:03 AM

    NGINXUnitischosenfordeployingapplicationsduetoitsflexibility,easeofuse,andabilitytohandledynamicapplications.1)ItsupportsmultipleprogramminglanguageslikePython,PHP,Node.js,andJava.2)Itallowsdynamicreconfigurationwithoutdowntime.3)ItusesJSONforconfigu

    NginxおよびWebホスティング:ファイルの提供とトラフィックの管理NginxおよびWebホスティング:ファイルの提供とトラフィックの管理May 03, 2025 am 12:14 AM

    Nginxは、ファイルを提供し、トラフィックを管理するために使用できます。 1)nginxサービスの構成静的ファイル:リスニングポートとファイルディレクトリを定義します。 2)ロードバランシングとトラフィック管理を実装します。上流モジュールとキャッシュポリシーを使用して、パフォーマンスを最適化します。

    Nginx vs. Apache:Webサーバーテクノロジーの比較Nginx vs. Apache:Webサーバーテクノロジーの比較May 02, 2025 am 12:08 AM

    Nginxは、高い並行性と静的コンテンツの処理に適していますが、Apacheは動的な内容と複雑なURL書き換えに適しています。 1.Nginxは、高い並行性に適したイベント駆動型モデルを採用しています。 2。Apacheは、動的なコンテンツに適したプロセスモデルまたはスレッドモデルを使用します。 3。NGINX構成は簡単ですが、Apache構成は複雑ですが、より柔軟です。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

    AtomエディタMac版ダウンロード

    AtomエディタMac版ダウンロード

    最も人気のあるオープンソースエディター

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境