Javascript 主干路由器问题
我有一个路由器,它可以很好地进行站点导航,并且在单击浏览器后退/前进按钮时也可以工作。然而,当直接输入URL时,我得到404 这是我的路由器:Javascript 主干路由器问题,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个路由器,它可以很好地进行站点导航,并且在单击浏览器后退/前进按钮时也可以工作。然而,当直接输入URL时,我得到404 这是我的路由器: define(function(require) { var $ = require('jquery'), _ = require('underscore'), Backbone = require('backbone'); var AppRouter = Backbone.Router.extend(
define(function(require) {
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone');
var AppRouter = Backbone.Router.extend( {
routes: {
'home' : 'homeHandler',
'webdesign' : 'webHandler',
'mobile' : 'mobileHandler',
'javascript' : 'javascriptHandler',
'hosting' : 'hostingHandler',
'contact' : 'contactHandler'
},
initialize: function() {
this._bindRoutes();
$('.link').click(function(e){
e.preventDefault();
Backbone.history.navigate($(this).attr("href"),true);
});
if(history && history.pushState) {
Backbone.history.start({pushState : true});
console.log("has pushstate");
}
else {
Backbone.history.start();
console.log("no pushstate");
}
console.log("Router init with routes:",this.routes);
},
homeHandler: function(e) {
require(['../views/home-content-view', '../views/home-sidebar-view'],
function(HomeContent, HomeSidebar) {
var homeContent = new HomeContent();
homeContent.render();
var homeSidebar = new HomeSidebar();
homeSidebar.render();
});
},
webHandler: function(e) {
require(['../views/web-content-view', '../views/web-sidebar-view'],
function(WebContent, WebSidebar) {
var webContent = new WebContent();
webContent.render();
var webSidebar = new WebSidebar();
webSidebar.render();
});
},
...
});
return AppRouter;
});
显然,我遗漏了一些东西
如有任何澄清,将不胜感激
谢谢,
Stephan主干网在网页上运行(该网页已加载到浏览器中)。当您直接在浏览器中输入URL时,您正在向服务器发出该URL的HTTP请求。服务器不是由主干网管理的。您必须在服务器上定义遇到此类HTTP请求时的行为 附带说明:
homeHandler
和webHandler
处理程序几乎相同。考虑把它们合并成一个处理器……你能举个例子吗?您直接输入的URL是什么?例如mydomain.com/webdesign