14

このまったく新しいルートの構文は、真実であるように聞こえますが、今では実際にそうであると考えています。私はそれを機能させることをあきらめました。ここで、Angular 2 ページのメインの例でさえ機能しないことに気付きました。ライブの例を開いて試してみると、クリックするだけでうまく動作し、URL のパスが変更されていることがわかりますが、文字列を変更しているだけで、URL をコピーして送信すると、パスは実際には存在しません。誰かに次のエラーが表示されます。

{
    "statusCode": 404,
    "error": "Not Found"
}

ページを更新しただけでも、同じエラーが発生します。

問題を再現するには、次の URL を開きます。

https://angular.io/resources/live-examples/tutorial/ts/plnkr.html

ライブ プレビューの右上にある [別のウィンドウでプレビューを起動] ボタンをクリックし、ページが読み込まれるのを待ち、URL が次のように変化するのを確認します。

http://run.plnkr.co/KMzM8hkaCyhlnf3b/dashboard

F5 キーを押してページを更新すると、エラーが発生します。

これはバグなのか、動作するはずの方法なのか、それとも試していないものなのか? 彼らはすでに悪いルーターの実装でもう一度やり直していますか、それとも私がそれを機能させようとしている方法に完全に迷っていますか? ご意見をお聞かせください !

ハッシュタグの実装を使用したほうがよいと思います。

4

2 に答える 2

13

実際、アプリケーションのアップロード時に 404 エラーが発生するのは正常なことです。これは、ブラウザー内の実際のアドレスが更新されているためです (# / hashbang アプローチを使用していない場合)。デフォルトでは、Angular2 での再利用には HTML5 履歴が使用されます。

404 エラーを発生させたくない場合は、サーバーを更新して各ルート パスの index.html ファイルを提供する必要があります。

このリンクも役に立ちます: Web サイトを更新すると 404 が表示されます。これは Angular2 と firebase を使用した場合です。

お役に立てば幸いです、ティエリー

于 2015-12-31T09:01:50.053 に答える
1

これは設計どおりです (HTML5 によって、Angular によって導入されたものではありません)。HashLocationStrategy に切り替えるか、そのようなリクエストを処理 (リダイレクト) できるサーバーを使用してください。https://github.com/angular/angular/issues/4735も参照してください

于 2015-12-31T07:45:06.297 に答える