django에서 앱을 개발 중이며 backbone.js를 사용 중입니다. URL은 백본 라우터를 사용하여 라우팅됩니다. 내 HTML은 하나의 정적 페이지에 있습니다. 예를 들어, href="/user/home"
링크를 클릭하면 페이지가로드되고 URL이있는 브라우저를 새로 고치면 (http 요청 보내기) 장고 urls에 해당 URL이 없으므로 404 오류가 발생합니다. .backbone.js를 사용하는 url 디스패치
페이스 북 (django_facebook)을 사용하여 로그인 할 때 페이스 북에 로그인 할 때마다 빈 페이지 (다른 잘못된 URL이이 스플래트 때문에 수행하는 방식 - - {"*action" : "defaultRoute"}
참조), 브라우저를 새로 고치면 URLS.PY에 url(r'^facebook/', include('django_facebook.urls'))
이 있기 때문에 브라우저가 작동합니다 (로그인 할 때 fb 탭이 열림).
내 문제는 링크를 클릭하고 fb 탭 또는 팝업 창이 열려있는 경우입니다.이 경우 작동하지 않기 때문에 브라우저의 URL을 눌러 작동시켜야합니다.
backbone.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;
...
감사합니다.
해시 (#) 뒤에 추가되어야하는 백본 경로가 아닙니다. 내게는 라우팅이 전혀 작동하지 않는 것 같습니다. – migajek
@migajek은 HTML5 기록 개체를 지원하지 않는 브라우저에서만 사용할 수 있습니다 (IE8 & IE9) – tkone