web-dev-qa-db-ja.com

CDNを使用してAzure Blob静的Webサイトとして展開されたSPAの更新ページでWebContentNotFound

SPA(角度付きで構築)があり、Azure Blob Storageにデプロイされています。すべてが正常に機能し、デフォルトドメインから移動しても問題はありませんが、ページやルートを更新すると、index.htmlが読み込まれなくなり、代わりに「要求されたコンテンツが存在しません」というエラーが発生します。

その用語をグーグルすると、結果は合計3つになるので、これを診断して修正しようとして困っています。

8
MichaelB

静的ウェブサイトでエラーページをindex.htmlに設定するだけです。

enter image description here

12
Ahmed Shendy

実際の問題は私が404.htmlを定義していないことでした-SPAのblobストレージは、ルート以外のルートにどのファイルを提供するかを理解していません。したがって、他のすべてのルートは404ファイルに行きます。しかし、SPAでは404でもインデックスファイルを通過します。だから私がしたすべては私の404ファイルとしてindex.htmlに言及することであり、すべてが順調です。

1
MichaelB

通常、CDNプロファイルとエンドポイントを作成しましたが、コンテンツがCDNで利用できないようです。 CDN URLを介してコンテンツにアクセスしようとするユーザーは、HTTP 404ステータスコードを受け取ります。これらの方法は、404ステータスコードを返す Azure CDNエンドポイントのトラブルシューティング で確認できます

次のようないくつかの原因が考えられます。

ファイルのオリジンはCDNからは見えません。エンドポイントが正しく構成されていないため、CDNが誤った場所を探します。ホストはCDNからのホストヘッダーを拒否しています。エンドポイントには、CDN全体に伝播する時間がありませんでした。

CDNを使用すると、最初の要求でクライアントは直接Originサーバーにアクセスし、その後、次の要求でページを更新すると、クライアントは存続時間(TTL)が経過するまでCDNキャッシュサーバーに要求します。 Azure CDNでAzure Blobストレージの有効期限を管理する および Azure CDNのキャッシュ動作をキャッシュルールで制御する

この場合、ウェブサイトのblobコンテンツがインターネットで公開されていることを確認できます。その後、Originの設定が適切に構成されていることを確認できます。 OriginタイプとOriginホスト名の値が正しいことを確認します。静的Webサイトがリッスンしているときに、HTTPおよびHTTPSポートが表示されていることを確認します。親切に、そのトラブルシューティングリンクから詳細を取得できます。

0
Nancy Xiong

私にとって、index.htmlページをエラードキュメントページとして追加しても、URLでナビゲートすると、アプリがリロードされるため、役に立ちませんでした。 Angular HashLocationStrategyの使用に関する他の場所に回答を投稿しました。これにより、URLを手動で変更したときにページが再読み込みされません。

他の回答SO質問

0