0

いくつかのリンクをクリックするとアクティブになる次の機能があります。

function showPage(page) {
    var History = window.History;
    History.pushState(null,null,page);
    $("#post-content").load(page + ".php");
}

ページの内容が更新され、URL が変更されます。しかし、私は確かに何か間違ったことをしていることを知っています。たとえば、ページを更新すると、ページが見つかりませんというエラーが表示され、同じ理由で新しいページのリンクを共有できません。

これを解決する方法はありますか?

4

2 に答える 2

1

動的 URL をメイン アプリにルーティングしていないようです。サーバーpage上の物理ファイルを参照する場合を除き、これらの URL を単にブラウザー履歴のプレースホルダー以外の目的で機能させたい場合は、サーバー側で URL 書き換えを行う必要があります。サーバー側をいじりたくない場合は、ハッシュで URL をハッキングするなど、別の戦略を使用する必要があります。こうすることで、サーバーは常にメインのアプリ ページにサービスを提供し、アプリ ページは URL アドオンを読み取って、何を動的にレンダリングする必要があるかを判断します。

于 2012-12-07T18:22:24.570 に答える
0

ページを構築するために JavaScript に依存するのをやめる必要があります。

サーバーはそれらを自分で構築できる必要があります。

その後、JavaScript ( + Ajax) を使用して段階的に強化pushStateし、すべての共有コンテンツをリロードすることなく、前のページを目的のページに変換できます。

あなたの問題は、基盤を構築する前に「強化」ビットを行ったことです。

于 2012-12-07T17:03:15.340 に答える