検索
ホームページウェブフロントエンドCSSチュートリアルクライアント側のレンダリングされたCreate-React-AppをMicrosoft Azureに展開します

クライアント側のレンダリングされたCreate-React-AppをMicrosoft Azureに展開します

Microsoft AzureへのReactアプリケーションの展開は簡単に見えますが、隠された複雑さが存在します。このガイドでは、Create-React-App(またはPushStateルーティングを使用した同様のフロントエンドフレームワーク)をazureに展開し、クライアントサーバールーティングの競合を最小限に抑えることに焦点を当てています。

簡単な逸話は課題を示しています。Azureに個別に展開されたReactフロントエンドとASP.NETのコアバックエンドを備えた以前のプロジェクトでは、ページのリフレッシュは、ルーティングの誤った不明瞭さのために404のエラーをもたらしました。これにより、クライアント側のルーティングを処理するための適切なサーバー側の構成が必要になりました。

生産対応のReactビルド

生産用のReactアプリの構築( npm run buildを使用)は、静的資産を含む最適化されたbuildフォルダーを作成します。このフォルダーをサーバーに展開するだけで、ライブアプリケーションに十分です。構造は通常、次のように似ています。

 <code>→ build → static → css → css files → js → js files → media → media files → index.html → other files...</code>

Reactルーターを使用したクライアント側のルーティング

ReactルーターはHTML5プッシュステートAPIをレバレッジします。プッシュステートは、フルページのリロードなしでURLを更新し、クライアント側のルーティングを有効にします。ただし、これはサーバーに展開する際の課題を提示します。標準サーバーは、URLパスに一致するファイルを見つけることを期待しています。クライアント側のルーティングでは、そうではありません。サーバーは、すべてのルートにindex.html提供するように構成する必要があります。

たとえば、Express.jsにはこの構成が必要です。

 app.get( '*'、(req、res)=> {
  res.sendfile(path.resolve(__ dirname、 'client'、 'build'、 'index.html'));
});

これは、Reactアプリがサーバールートでホストされていることを前提としています。別々のフロントエンドとバックエンドのプロジェクトの場合、このアプローチには問題があります。静的アプリを展開しているため、バックエンドは厳密に必要ありません。

Azure Appサービスの展開

Azureに展開するには:

  1. Azureポータルで新しいアプリサービスを作成します。
  2. 展開センターに移動します。 BuildプロバイダーとしてKuduを使用してローカルGitを使用します。
  3. AzureはGitリモートURLを提供します。これをローカルにクローンします。
  4. React App( npm run build )を構築した後、 buildフォルダーのGITリポジトリを初期化し、変更をコミットし、Azureリモートにプッシュします。

重要なことに、 package.jsonがAzureのサポートされているnode.jsバージョンを指定してください( az webapp list-runtimesを使用して利用可能なバージョンを確認してください)。 "engines": {"node": "10.0"}

404エラーのため、最初の展開がページの更新で失敗する可能性があります。

Azureでのクライアントサーバールーティングの調整

これを解決するには、 web.configファイルをbuildフォルダーに追加します。

 
<configuration>
  <system.webserver>
    <rewrite>
      <rules>
        <rule name="React Routes" stopprocessing="true">
          <match url=".*"></match>
          <conditions logicalgrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchtype="IsFile" negate="true"></add>
            <add input="{REQUEST_FILENAME}" matchtype="IsDirectory" negate="true"></add>
            <add input="{REQUEST_URI}" negate="true" pattern="^/(api)"></add>
          </conditions>
          <action type="Rewrite" url="/"></action>
        </rule>
      </rules>
    </rewrite>
  </system.webserver>
</configuration>

再構築と再展開。アプリケーションが正しく機能するようになりました。継続的な展開については、Azureの継続的な統合/継続的展開(CI/CD)機能を調べてください。

結論

Azureは、Reactアプリケーションを展開するための堅牢な機能を提供します。クライアントサーバーのルーティングインタラクションを理解することは、展開を成功させるための鍵です。 Kudu、node.jsの展開、およびAzureの静的サイトの展開に関するさらなるリソースが、より深い理解のために推奨されます。

以上がクライアント側のレンダリングされたCreate-React-AppをMicrosoft Azureに展開しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
静的サイトコンテンツ管理にページCMSを使用します静的サイトコンテンツ管理にページCMSを使用しますMay 13, 2025 am 09:24 AM

私は知っています、私は知っています:たくさんのコンテンツ管理システムオプションが利用可能であり、私はいくつかテストしましたが、実際にはY&#039;知っているものはありませんでしたか?奇妙な価格設定モデル、困難なカスタマイズ、一部は全体になることさえあります&

HTMLのCSSファイルをリンクするための究極のガイドHTMLのCSSファイルをリンクするための究極のガイドMay 13, 2025 am 12:02 AM

CSSファイルをHTMLにリンクすることは、HTMLの一部で要素を使用することで実現できます。 1)タグを使用して、ローカルCSSファイルをリンクします。 2)複数のタグを追加することにより、複数のCSSファイルを実装できます。 3)外部CSSファイルは、そのような絶対URLリンクを使用します。 4)ファイルパスとCSSファイルの読み込み順序の正しい使用を確認し、パフォーマンスを最適化すると、CSSプリプロセッサを使用してファイルをマージできます。

CSS Flexbox vsグリッド:包括的なレビューCSS Flexbox vsグリッド:包括的なレビューMay 12, 2025 am 12:01 AM

FlexBoxまたはグリッドの選択は、レイアウト要件によって異なります。1)FlexBoxは、ナビゲーションバーなどの1次元レイアウトに適しています。 2)グリッドは、雑誌のレイアウトなどの2次元レイアウトに適しています。この2つは、レイアウト効果を改善するためにプロジェクトで使用できます。

CSSファイルを含める方法:メソッドとベストプラクティスCSSファイルを含める方法:メソッドとベストプラクティスMay 11, 2025 am 12:02 AM

CSSファイルを含める最良の方法は、タグを使用してHTMLパーツに外部CSSファイルを導入することです。 1.タグを使用して、外部CSSファイルを導入します。 2。小さな調整のために、インラインCSSを使用できますが、注意して使用する必要があります。 3.大規模プロジェクトでは、@Importを介して他のCSSファイルをインポートするために、SASS以下などのCSSプリプロセッサを使用できます。 4。パフォーマンスのために、CSSファイルをマージし、CDNを使用し、CSSNANOなどのツールを使用して圧縮する必要があります。

FlexBox対グリッド:両方を学ぶべきですか?FlexBox対グリッド:両方を学ぶべきですか?May 10, 2025 am 12:01 AM

はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

軌道力学(またはCSSキーフレームアニメーションの最適化方法)軌道力学(またはCSSキーフレームアニメーションの最適化方法)May 09, 2025 am 09:57 AM

独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。

CSSアニメーション:それらを作成するのは難しいですか?CSSアニメーション:それらを作成するのは難しいですか?May 09, 2025 am 12:03 AM

cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

@KeyFrames CSS:最も使用されているトリック@KeyFrames CSS:最も使用されているトリックMay 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

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

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists

SecLists

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

SublimeText3 Mac版

SublimeText3 Mac版

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

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

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

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