3

スターターキットを使ってデュランダルを始めたばかりです。非常に単純な新しいビュー/ビューモデルの組み合わせ (基本的には、サンプルから既存のものをコピー/貼り付けしたもの) を追加し、ルートを mapNav() しました。

ブラウザを更新しようとすると問題が発生します...新しいビューが表示されません。ナビゲーション バーにはありません。また、アドレス バーに入力してビューに直接移動することもできません。別のブラウザーでページにアクセスすると、すべてが正しく表示されるため、コードが正しい (または正しいはず?!) ことはわかっています。

デュランダルが何らかの形で行っているブラウザのキャッシングはありますか? F5 または Ctrl+F5 で更新できる場合と、そうでない場合があります。また、特定の「ページ」にディープリンクすることもできません。すなわち:

http://localhost:52625/#/newpageただ私に空白を与える

私は何が欠けていますか?

4

2 に答える 2

5

私が Chrome で使用するオプションは、開発者ツールを開いて更新ボタンを右クリックすることです。この問題を常に修正する「Empty Cache and Hard Reload」のオプションがあります。IE で同等のものはわかりませんが、これを試して、問題が解決するかどうかを確認してください。

ここに画像の説明を入力

于 2013-05-14T14:52:58.373 に答える
3

ほとんどのブラウザーは、RequireJS を介して返されたモジュールをキャッシュします。これは、Durandal がモジュールとビュー モデルを取得する方法です。

CTRL+F5 は最初のページを更新するだけなので役に立ちません。すべてのモジュールは引き続き javascript (RequireJS) を使用して要求されるため、通常は最初にキャッシュから取得されます。

ブラウザの開発者ツールでキャッシュを無効にすることをお勧めします。これにより、すべてのネットワーク リクエストがキャッシュからではなく、ソースから直接読み込まれるようになります。

追加情報については、この質問を参照してください: require.js キャッシュを使用する場合のデバッグ

urlArgs別の解決策は、そのプロパティ を設定するように RequireJS を構成することです: https://stackoverflow.com/a/8479953/91189

このソリューションは問題なく機能しますが、技術的には毎回異なるファイルが要求されるため、モジュールがロードされるたびにブレークポイントが失われるため、少なくとも Chrome ではデバッグが難しくなります。

于 2013-05-14T13:49:19.157 に答える