Javascript 主干.js路由不工作

Javascript 主干.js路由不工作,javascript,apache,backbone.js,routes,Javascript,Apache,Backbone.js,Routes,我已经定义了 var AppRouter = Backbone.Router.extend({ routes: { "photos/": "showPhotos", "pic/:object_id": "getPic" //"*actions": "defaultRoute" }, showPhotos: function() { console.log("routing: showPhotosPage");

我已经定义了

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/

我和阿帕奇一起经营山狮


谢谢

默认情况下,与问题注释中提到的@layric类似。路由器理解
url,因此url看起来类似于
/~jayc707/#/moments/

但是,可以使用标准URL,例如
/~jayc707/moments/
,并支持主干网的
pushState
,如中所述


使用pushState有其优点和缺点。主要的缺点是,旧的浏览器不支持它,旧的浏览器将降级为基于散列的URL。另一个问题是,您必须配置web服务器(Apache)以返回与之相关的任何URL的根页面。有关更多信息,请参阅上面的文档。

尝试localhost/~myusername/#/photoworks!谢谢我应该如何修改我的路由以使localhost/~myusername/photos工作?我不相信您能够。请在
Backbone.history.start
call()中使用
pushState:true
,注意当用户重新加载页面时,web服务器将提供初始请求,因此请确保它返回有意义的内容。