Я решил эту проблему, заранее вызвав тихую навигацию к корню:
var url = window.location.pathname.substr(Backbone.history.root.length);
this.navigate('/', { trigger: false });
this.navigate(url, { trigger: true });
Имейте в виду, что это создаст дополнительную запись в истории, но в моем случае это не такважный.
Вы также можете заставить это работать без записи истории, изменив свойство fragment
объекта Backbone.history
, но это свойство должно быть приватным, поэтому я подумал бы дважды, прежде чем дурачитьсяс ним:)
Свойство фрагмента - это то, что используется для сопоставления текущего URL-адреса с URL-адресом, который передается в функцию навигации, и поэтому маршрут будет выполняться, если они не совпадают.