0

ハンドルバー付きの単一ページ アプリケーションを作成するために使用する予定のルーティング ライブラリである page.js を使い始めたところです。ルートを使用して、さまざまなハンドルバー テンプレートを呼び出します。これまでのところ、この機能は機能しており、期待どおりの速さです。

現在、ページを更新する (F5 キーを押す) か、URL をコピーして新しいタブに貼り付けると、404 not found エラーが発生するという問題が発生しています。アプリで作成した見つからないページを呼び出していません。

以下のコードは、https ://github.com/visionmedia/page.js/tree/master/examples/notfound のコピーです。

<!DOCTYPE html>
<html>
<head>
  <title>Not Found</title>
  <script src="/page.js"></script>
</head>
<body>
  <h1>Not Found</h1>
  <p></p>
  <ul>
    <li><a href="./">/</a></li>
    <li><a href="./about">/about</a></li>
    <li><a href="./contact">/contact</a></li>
    <li><a href="./not-found">/not-found</a></li>
  </ul>
  <script>
    page.base('/notfound');
    page('/', index);
    page('/about', about);
    page('/contact', contact);
    page('*', notfound);
    page();

    function index() {
      document.querySelector('p')
      .textContent = 'viewing index';
    }

    function about() {
      document.querySelector('p')
      .textContent = 'viewing about';
    }
    function contact() {
      document.querySelector('p')
      .textContent = 'viewing contact';
    }
    function notfound() {
      document.querySelector('p')
      .textContent = 'not found';
    }
  </script>
</body>

このページを更新すると、ローカルホストの 404 ページが表示されます。リンクhttp://127.0.0.1/notfound/aboutを使用すると、同じ結果が得られます。

私の質問は次のとおりです: page.js はブラウザーの更新、またはリンクを使用してアプリケーションの特定の部分にアクセスすることをサポートしていますか?

私が本当に問うべき質問は次のようなものです: Web サーバーは、アプリケーションをロードするページにすべてのナビゲーションをリダイレクトすることは可能でしょうか? 答えはイエスです。

ブラウザを更新するのが一般的なケースのようです。これに対する受け入れ可能な解決策は、更新の試行をキャッチして、メイン ページにリダイレクトすることです。リンクを使用してアプリケーションの特定の部分にアクセスすることは、それほど重要ではありませんが、いい感じです。

4

0 に答える 0