検索
ホームページウェブフロントエンドhtmlチュートリアルマルチドメイン名環境、ページ取得ソリューション url_html/css_WEB-ITnose

システムは分散方式で展開され、複数のドメイン名があるため、URL の取得の問題が頻繁に発生します。これはシステム フレームワーク レベルで提供する必要がある機能です。そうしないと、各モジュールが IP を取得する独自の方法を見つける必要があり、オンラインになると非常に混乱し、バグが発生しやすくなります

いくつかの主な問題があります。解決する必要がある問題:

1. 開発環境と本番環境を自動的に区別する機能。たとえば、オンラインで展開する場合、URL は http://www.xxx.com/svc/hello になりますが、ローカルで開発する場合は http://127.0.0.1/svc/hello にする必要があります。完全に書き込むことはできません。そうしないと、開発と展開を行ったり来たりする必要があり、非常に面倒です

2. さまざまなサービスに応じて URL を区別できる。たとえば、確認コード サービスを取得するには、http://www.xxx.com/svc/getCode を呼び出す必要があります。また、WeChat 関連のサービスの場合は、http://wx.xxx.com/svc/xxx を呼び出す必要があります。

この記事の概要を共有しましょう アイデア:

構成ファイル

1. アプリケーションには、開発モードで開始するか運用モードで開始するかを説明する、対応する構成ファイルがあります。そして、認証関連の URL、WeChat 関連の URL、共通サービス関連の URL などの URL を分離します。

2 同時に、topo-dev.json、topo- などの複数の設定ファイルがあります。 Production.json、topo -image.json などこれにより、異なる環境が分離されます。開発モードで起動すると、topo-dev.json がロードされ、設定された URL はすべて 127.0.0.1 のようになります

3. 起動時に、この設定ファイルをロードし、キー情報を配置します。 global._g_env グローバル変数を使用すると、実行時に環境と URL 情報を簡単に取得できます

サーバーは URL を取得します

サーバー コードはノード環境でも実行されるため、URL を取得するのは非常に簡単です。 _g_env.url、構成ファイル内のパスを取得できます

フロントエンド ページは URL を取得します

フロントエンド ページは、多くの場合、Ajax リクエストを送信する必要があるため、URL も知る必要があります。ただし、静的 js にはサーバーの環境情報と URL を取得する方法がないため、この情報をサーバーから取得する必要があります。

まず、サーバーにはこの情報を具体的に配信するサービスがあります。

function clientSettingScript(req, res, next){    var script = "window.global = {_g_server:{}}; \n"+        ";global[\"_g_server\"].staticurl=\"" +global["_g_topo"].clientAccess.staticurl + "\"\n"+        ";global[\"_g_server\"].uploadurl=\"" +global["_g_topo"].clientAccess.uploadurl + "\"\n"+        ";global[\"_g_server\"].authurl=\"" +global["_g_topo"].clientAccess.authurl + "\"\n"+        ";global[\"_g_server\"].serviceurl=\"" +global["_g_topo"].clientAccess.serviceurl + "\"\n"+        ";global[\"_g_server\"].wxserviceurl=\"" +global["_g_topo"].clientAccess.wxserviceurl + "\"\n"+        ";global[\"_g_server\"].nail_pc_url=\"" +global["_g_topo"].connector.nail_pc_url + "\"\n"+        ";global[\"_g_env\"] =\"" +global["_g_topo"].env+ "\";\n";    res.end(script);}

これは普通の特急サービスですが、実際には JS スクリプトです。フロントエンドページでは、script タグを使用してロードします


<script src="/svc/portal/setting"></script>

このようにして、ブラウザは応答を受け取ると、それを js スクリプトとして実行し、グローバル変数 global をウィンドウには、環境情報と URL 情報が含まれています


同時に、URL にはドメイン名のみが含まれており、ページは次のような実際の状況に応じて完全な URL を組み立てます。

このアプローチの鍵は次のとおりです:

1. URL と環境情報は、コード内にハードコーディングされるのではなく、別の構成ファイルに配置されます。同時に、開発環境、本番環境、ミラー環境に応じて異なる設定ファイルを分離します

2. これらの設定情報をクライアント ページに提供するサービスを特にサーバー側で作成します。死刑に処せられる

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLドキュメントのルートタグは何ですか?HTMLドキュメントのルートタグは何ですか?Apr 29, 2025 am 12:10 AM

Theroottaginanhtmldocumentis.itservesStop-levellementThateChationCothercontent、ProperDocumentsTurcuteRuctureAndBrowsingを保証します。

HTMLタグと要素は同じものですか?HTMLタグと要素は同じものですか?Apr 28, 2025 pm 05:44 PM

この記事では、HTMLタグは要素を定義するために使用される構文マーカーであり、要素はタグやコンテンツを含む完全なユニットであると説明しています。彼らは協力してWebPages.Characterカウントを構築するために協力します:159

&lt; head&gt;の重要性は何ですかおよび&lt; body&gt; HTMLのタグ?&lt; head&gt;の重要性は何ですかおよび&lt; body&gt; HTMLのタグ?Apr 28, 2025 pm 05:43 PM

この記事では、&lt; head&gt;の役割について説明します。および&lt; body&gt; HTMLのタグ、ユーザーエクスペリエンスへの影響、およびSEOの影響。適切な構造化により、ウェブサイトの機能と検索エンジンの最適化が強化されます。

&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ?&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ?Apr 28, 2025 pm 05:42 PM

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

HTMLのドキュメントで使用されている文字セットを示す方法を説明してください。HTMLのドキュメントで使用されている文字セットを示す方法を説明してください。Apr 28, 2025 pm 05:41 PM

記事では、UTF-8に焦点を当てたHTMLでのキャラクターエンコーディングの指定について説明します。主な問題:テキストの正しい表示を確保し、文字化けされたキャラクターの防止、SEOとアクセシビリティの強化。

HTMLのさまざまなフォーマットタグは何ですか?HTMLのさまざまなフォーマットタグは何ですか?Apr 28, 2025 pm 05:39 PM

この記事では、Webコンテンツの構築とスタイリングに使用されるさまざまなHTMLフォーマットタグについて説明し、テキストの外観に対する影響とアクセシビリティとSEOのセマンティックタグの重要性を強調しています。

「ID」属性とHTML要素の「クラス」属性の違いは何ですか?「ID」属性とHTML要素の「クラス」属性の違いは何ですか?Apr 28, 2025 pm 05:39 PM

この記事では、HTMLの「ID」属性と「クラス」属性の違いについて説明し、一意性、目的、CSS構文、および特異性に焦点を当てています。それらがWebページのスタイリングと機能にどのように影響するかを説明し、のベストプラクティスを提供する

HTMLの「クラス」属性とは何ですか?HTMLの「クラス」属性とは何ですか?Apr 28, 2025 pm 05:37 PM

この記事では、スタイリングとJavaScriptの操作の要素をグループ化するHTML「クラス」属性の役割を説明し、一意の「ID」属性とは対照的です。

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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

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

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

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

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

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

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