Я создал сайт в позвоночнике и по разным причинам решил, что хочу удалить хэш в URL-адресе. Я изменил history.start отBackbone.js PushState True
Backbone.history.start();
в
Backbone.history.start({pushState: true, root: '/'});
но когда я делаю, что маршрутизация перестает работать правильно.
Моя маршрутизация выглядит следующим образом:
var Router = Backbone.Router.extend({
routes: {
"": "home",
"home": "home",
"artists": "artists",
}
});
var router = new Router;
router.on('route:home', function() {
console.log("home");
// Code
});
router.on('route:artists', function() {
console.log("artists");
// Code
});
//Backbone.history.start();
Backbone.history.start({
pushState: true,
root: '/'
});
если я запускаю его без PushState он отлично работает, если я запустить его с PushState он не достигает console.log("artists");
части, и я не понимаю, почему, может кто-то объясняет мне, что я делаю неправильно?
Это похоже на исправление, спасибо. Нужно ли добавлять что-то еще для обработки вещей, если вы перейдете к ссылке напрямую? Если я перейду непосредственно к/художникам, тогда ничего не загрузится, тогда как если я перейду на домашнюю страницу и перейду к/художникам, она будет работать нормально. Я предполагаю, что я оставил что-то еще подобное? – mrdookles
Если вы хотите, чтобы в адресную строку вашего браузера вставлялась ссылка типа 'http: // yoursite.com/artist', вам необходимо настроить свой веб-сервер для направления всех запросов на страницу, которая загружает магистраль и маршрутизатор. В противном случае веб-сервер попытается загрузить этот ресурс, а то, что вы хотите, является основой для его выбора и выполнения собственной маршрутизации. Если вы можете указать, какой веб-сервер вы используете, я могу помочь в настройке. – Mjh
@mrdookles вам необходимо убедиться, что у вас есть серверная маршрутизация для обработки маршрутизации вашего приложения. Это не так, потому что сервер не перенаправляет на app/index.html –