環境
ここ数日間、次の問題に取り組んできました。CDN の性質と、新しいルールを手動で確認するため、新しいルールを展開するのに毎回最大 4 時間かかります。
次のトピックで説明するように、現在、Angular アプリケーションをストレージ アカウントにデプロイしています。このストレージ アカウントには、単一のBLOB コンテナーが含まれています。cdn
このBLOB コンテナーのルート内で、角度プロジェクトのフォルダー全体が CI セットアップを介してコピーされています。dist
CDN プロファイルも設定されており、origin-path
呼び出された/cdn
問題
残念ながら、現在、デフォルト ファイルに直接アクセスできないという問題が進行中です。
私が望むのは、Angular アプリケーションからのすべての着信トラフィックを
index.html
ファイルにリダイレクトすることです。これはAngularのルーティングを満たすためです。さらに、特定の URL を書き換えずに、静的ファイル (画像など) のリクエストを通過させたいと考えています。
この問題に関するさまざまな投稿を見てきましたが、どの回答も私のケースをカバーしていないようであるか、期待される結果を提供していませんでした。
現在、VerizonのAzure CDNのルール エンジン機能を使用しています。
パターンに関しては、コメントで言及されたものを含め、次の記事で言及されているすべてのパターンを使用しました。
また、他のさまざまな記事やstackoverflowの記事を見つけるために少なくとも2日を費やしましたが、私の場合はどれもうまくいきませんでした.
さらに、独自の正規表現パターンも作成しましたが、それらはテスト環境で機能しましたが、CDN にデプロイされると機能しました。
私は通常、次のいずれかの結果になりました。
- トップ レベル ドメイン
https://myFancyWebsite.azureedge.net
は URL を に書き換えずindex.html
、http エラーが発生します。404
- トップレベルドメインはにリダイレクトされますが
index.html
、URLパスを追加すると機能しなくなります-使用を開始するとすぐにhttps://myFancyWebsite.azureedge.net/login/callback
httpエラーが再び発生します404
/login/callback
- トップ レベル ドメインは、URL を
https://myFancyWebsite.azureedge.net/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn ....
http エラーのようなものに書き換えます。431
私の場合、Microsoftの公式ドキュメントも役に立ちませんでした。
Angular アプリケーションをストレージ アカウントにデプロイするのは私が初めてではないと確信しており、誰かが私と同じ問題を抱えています。
現時点では、ストレージ アカウント全体の展開からの移行を確実に考えているため、正しい方向に向けてくれる情報に感謝しています。
更新 1
ここの記事でも言及されている次のsource
パターンを使用すると、少なくともトップレベルのドメインのファイルへの書き換えを処理できます。((?:[^\?]*/)?)($|\?.*)
index.html
残念ながら、リダイレクト元に追加のパターンが必要https://myFancyWebsite.azureedge.net/login/callback
ですhttps://myFancyWebsite.azureedge.net/index.html
更新 2
現在、正規表現パターンを 1 日に 1 回か 2 回更新していますが、テスト環境では再び動作しますが、展開すると動作しなくなります。Azure CDN がトップレベル ドメインの後に URL に何かを追加していると思い始めましたが、それを確認する方法がわかりません。
https://regex101.com/r/KK0jCN/23
アップデート 3
私たちは 3025 年を書いていますが、たとえば次のパターンがトップ ドメインの URL 書き換えを処理しない理由はまだわかりません。