next.jsの後のルーティング障害の問題の詳細な説明静的サイトがnginxに展開されます
next.jsの静的エクスポートを使用してNginxサーバーに展開すると、ページを更新するとルートが失敗し、ホームページに戻ります。これは、多くの開発者が遭遇する一般的な問題です。この記事では、この問題の原因と解決策を詳細に調査します。
問題の説明
A /test
ルートを含む次の.JSプロジェクトを作成し、静的エクスポートで構成したとします。
{ 「出力」:「エクスポート」 }
ローカル開発環境(Run npm run dev
)アクセスlocalhost:3000/test
正常に表示されます。しかし、Nginxに展開した後、アクセス/test
ホームページにジャンプします。 Nginxが404で構成されている場合でも、ホームページにジャンプしてください。
位置 / { try_files $ uri $ uri / / index.html; }
これは、通常、同様の構成で適切に機能するVue.jsの履歴モードとは異なります。
問題分析
nginxのtry_files
ディレクティブが静的ディレクトリ内の対応するルーティングファイルを見つけることができない場合、 index.html
に戻ります。静的エクスポートは対応するルートの静的ファイルを生成しない可能性があるため、これは予想通りのようです。ただし、根本的な原因は、next.jsの静的エクスポートメカニズムとクライアントルーティング処理方法の違いです。
解決
この問題を解決するには、next.jsとnginxの構成から開始する必要があります。
- next.js
basePath
構成: next.jsアプリケーションがサブパス(/my-app
など)に展開されている場合、next.config.js
でbasePath
を構成する必要があります。
module.exports = { ベースパス: '/my-app'、 }
- nginx構成の最適化: Nginxの
try_files
命令を調整して、ルーティングをより正確に処理できるようにします。
位置 / { try_files $ uri $ uri//my-app/index.html; # /my-appの下に展開されている場合}
これにより、指定されたルーティングファイルが見つからないときに、nginxが展開ディレクトリ内のindex.html
ファイルを正しく指します。
next.jsに付属のサーバーを使用してください: nginxサービスの静的ファイルを直接使用しないでください。 next.jsに付属のサーバーを使用し、nginxを逆プロキシとして使用することをお勧めします。このようにして、ルーティング処理はnext.jsサーバーによって行われ、静的ファイルマッチングの問題を回避します。
生成された静的ファイルを確認してください: next.jsの静的エクスポートが必要なすべてのルーティングファイルを正しく生成したことを確認してください。
next export
コマンドを使用して再輸出し、生成されたディレクトリ構造を確認できます。
上記の方法を使用して、Nginxのnext.js静的エクスポートルート障害の問題を効果的に解決し、静的Webサイトがすべてのルーティングリクエストを正しく処理できるようにすることができます。選択する方法は、特定の展開環境と要件に依存します。可能であれば、より信頼性の高いルーティング処理を提供できるnext.js独自のサーバーとリバースプロキシの使用を優先することをお勧めします。
以上がNginxに展開された後、ページを更新するときにnext.js静的エクスポートが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター
