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服务器将提供初始请求,因此请确保它返回有意义的内容。