我正在 django 中开发一个应用程序,并且正在使用backbone.js。url 使用骨干路由器路由。我的 HTML 在一个静态页面中,当我单击一个链接时,例如href="/user/home"
,加载了一个页面,如果我用 url 刷新浏览器(发送 http 请求),我会收到错误 404,因为 django url 没有那个 url。
我有一个使用 facebook (django_facebook) 登录的场景,每当我点击 Facebook 登录链接时,我都会得到一个空白页面(就像任何其他无效 url 会因为这个 *splats 而做的那样——{"*action" : "defaultRoute"}
见下面的代码),当我刷新浏览器时,它可以工作(打开 fb 选项卡进行登录。)因为我url(r'^facebook/', include('django_facebook.urls'))
在 URLS.PY 中有 ,。
我的问题是如何单击链接并打开 fb 选项卡或弹出窗口,因为在这种情况下它不起作用,我必须在浏览器中点击 url 才能工作。
骨干网.js路由器
Api.Routers.MainRouter = Backbone.Router.extend({
routes: {
":user/messages/:action/:target": "messagesAction",
":user/challenge/:action/:target" : "gameScores",
":user/challenge/:action/:target/:bet" : "challengeResult",
":user/challenge/:action": "challengeAction",
":user/:action" : "userAction",
":user/friends/:action/:target" : "friendsAction",
"*action" : "defaultRoute"
},
messagesAction: function (user, action, target) {
myScrollAction = action;
conversationAction (action);
//HIGHTLIGHT FOOT NAV
$(".selected").removeClass("selected");
$("#nav-messages").parents("li").addClass("selected");
$(".message-friend-name").html(target.replace(/%20/g, " "))
},
challengeResult: function (user, action, target, bet) {
defaultRouterAction (action);
myScrollAction = action;
...
谢谢。