Backbone.js и состояние отправки

Я использую Backbone.js для разработки веб-приложения, и у меня есть сомнения относительно правильного использования маршрутизации и Html5 Push State. Вот мой код

var HoopRouter  = new HoopApp.Router.RequestManager;
Backbone.history = Backbone.history || new Backbone.History({});
Backbone.history.start({
    root      : '/web_app',
    pushState : true
});

И в методе я делаю это:

Backbone.history.navigate('#gameScreen/31', { trigger : true });

Это работает правильно, но дает мне такой URL-адрес https://my_host/web_app/gameScreen/31, но когда я ввожу этот URL-адрес в панель навигации и нажимаю ввод, браузер говорит, что URL-адрес не найден на этом сервере, а также ссылки href не работают. Если я проверяю pushState на false, он работает хорошо, но Backbone использует маршруты «#», а я хочу использовать маршруты «/». Я не знаю, может я что-то забыл.


person Flip120    schedule 25.02.2014    source источник
comment
У вас действительно есть страница, соответствующая my_host/web_app/gameScreen/31, или маршрутизатор на стороне сервера, который будет обслуживать эту страницу? Основываясь на том, что вы показали нам до сих пор, я не вижу определенных маршрутов на стороне клиента, поэтому, если ответ на предыдущий вопрос не положительный, я бы не ожидал, что это сработает.   -  person kinakuta    schedule 25.02.2014
comment
На данный момент это мои определенные маршруты на стороне клиента { : index, gameScreen/:gameid : html5game, :whatever : notFound }   -  person Flip120    schedule 26.02.2014
comment
Ваш сервер также попытается обслуживать этот маршрут, поэтому вам нужно будет явно игнорировать маршрут, если вы хотите маршрутизировать только на стороне клиента. Один из типичных способов справиться с этим — заставить его обрабатывать базовый маршрут и отсекать все после него в URL-адресе, чтобы он рассматривал все маршруты из этого базового URL-адреса как одинаковые.   -  person kinakuta    schedule 26.02.2014


Ответы (1)


Ваш сервер должен возвращать значение для каждого URL-адреса, который ваш клиент может сгенерировать при использовании pushState. См. BackboneJS + Codeigniter pushState true не работает

person David Sulc    schedule 26.02.2014