ホームページ  >  に質問  >  本文

javascript - js の高度なプログラムの問題

『Advanced JavaScript Programming (Third Edition)』の 492 ページを見たとき、質問がありました。

「偽の」URL を使用して更新すると、404 エラーが返されます。Web サーバー上にこのような実際のリンクがない限り、ユーザーは必然的にページを更新する必要があります。本当に更新したいですか?作ってみませんか? 実ファイルは実リンクに相当します では、pushState() は何を使うのでしょうか? 非常に不便ではありませんか?

黄舟黄舟2663日前952

全員に返信(4)返信します

  • 淡淡烟草味

    淡淡烟草味2017-07-05 11:09:56

    pushState 質問に答えるために、主に SPA アプリケーションで使用されます:

    404が表示されます。これは、PushState モードでは URL に # がなく、ブラウザーが実際にサーバーへのリクエストを開始し、サーバー上にこのパスに対応するリソースがないためです。

    しかし、サーバー上に実際のリンクを持つ必要はありません (死ぬほど疲れます)。存在しないページ (404) がルート ルートにリダイレクトされるようにサーバー構成を変更するだけで済みます。

    Tomcat を例に挙げると、設定は非常に簡単です。次の設定をプロジェクトの web.xml に追加するだけです。 リーリー

    このようにして、Tomcat はリソースが見つからないすべてのパスをルート パスにリダイレクトするため、フロントエンド フレームワークは、それが angular/vue/react/backbone であっても、要求された URL をフロントで独自に処理できます。 -終わり。

    nginx/apache/IIS などの他のタイプのサーバーについては、このドキュメントを参照してください: https://github.com/angular-ui...

    出典: https://my.oschina.net/mumu/b...

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 11:09:56

    更新を押すと、現在のブラウザの URL を含むリクエストがサーバーに送信されます。

    たとえば、pushState() を使用して現在のアドレスをboomshaklaka.com/boomに変更した場合
    [更新]をクリックした後、サーバーはこのアドレスを受信し、そのアドレスが存在しないことが判明すると 404 を返します。

    返事
    0
  • 漂亮男人

    漂亮男人2017-07-05 11:09:56

    まず、フロントエンド ルーティングとバックエンド ルーティングの違いを理解する必要があります。

    バックエンドルーティングのみの場合、リクエストしたすべてのページはバックエンドによって返されます。現時点では、すべてのルーティングはバックエンドによって制御されます。

    ただし、SPA アプリケーションなど、ページを更新したくないが、URL も変更したい場合があります。現時点ではフロントエンドルーティングが必要であり、このpushStateがこの役割を果たします。

    返事
    0
  • 某草草

    某草草2017-07-05 11:09:56

    まず第一に、私はまだバックグラウンドでのルーティングの処理に慣れています。例としてバックグラウンド ルーティングを使用します。

    まず、プロジェクト内のどのファイルを関連付けるかは、あなた次第です

    リーリー

    異なるアクションが同じページをポイントできるため、ウェブサイトには少なくとも 1 つのページが必要です

    2番目:

    HTML ファイルでは、history.pushState() メソッドがブラウザ履歴に状態を追加します。

    アンカーポイントの設定にさらに使用されます:

    リーリー

    記事内で言及されている404については、ルーティング方向に問題があり、リソースが見つからないため、まだ残っています。

    返事
    0
  • キャンセル返事