我已经定义了
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。
谢谢!
答案 0 :(得分:2)
与问题评论中提到的@Layoric一样,默认情况下Backbone.Router会理解#
个网址,因此网址看起来像/~jayc707/#/moments/
但有可能使用/~jayc707/moments/
等标准网址与Backbone的pushState
支持,如Backbone.Histrory documentation中所述。
使用pushState有其优点和缺点。主要缺点是,旧版浏览器不支持它,旧版浏览器会降级为基于散列的URL。另一个是,您必须配置您的Web服务器(Apache)以返回相对于它的任何URL的根页。有关详细信息,请参阅上面的文档。