1

定義しました

var AppRouter = Backbone.Router.extend({
    routes: {
      "photos/": "showPhotos",
      "pic/:object_id": "getPic"
      //"*actions": "defaultRoute"
    },

    showPhotos: function() {
      console.log("routing: showPhotosPage");
      App.showPhotosPage();
    },

また、ルーターを開始して起動するようにしました...

  // Initiate the router
  var app_router = new AppRouter();

  // Start Backbone history
  Backbone.history.start();

ブラウザで localhost/~myusername を指定すると、ロードするページとスクリプトが取得されます (firebug を参照)。しかし、ブラウザで localhost/~myusername/photos/photos/ を指定すると、以下のブラウザ エラーが発生します。

見つかりません 要求された URL /~jayc707/moments/ がこのサーバーで見つかりませんでした。

Apache で Mountain Lion を実行しています。

ありがとう!

4

1 に答える 1

2

質問のコメントで言及されている @Layoric のように、デフォルトでは Backbone.Router は#URL を理解するため、URL は次のようになります。/~jayc707/#/moments/

ただし、 Backbone.Histrory ドキュメント/~jayc707/moments/で説明されているように、 Backbone のpushStateサポートなど、標準の URL を使用することは可能です。

pushState の使用には長所と短所があります。主な欠点は、古いブラウザーではサポートされておらず、古いブラウザーはハッシュベースの URL に劣化することです。もう 1 つは、Web サーバー (Apache) を構成して、それに関連する URL のルート ページを返すようにする必要があることです。詳細については、上記のドキュメントを参照してください。

于 2012-12-14T07:21:58.083 に答える