2015-12-07 2 views
2

Я пытаюсь реализовать javascript-маршрутизатор с API window.history. Я использую ui-router в течение длительного времени, но я хочу создать свой собственный маршрутизатор для своих небольших приложений. Все выглядит нормально, пока не встречается такая проблема: я обслуживаю свою страницу на localhost: 8080/index.html. Я направляюсь на страницу с атрибутами API, связанными с историей. Когда я нажимаю на маршрут, я теряю часть index.html. Например, url становится localhost: 8080/home. Когда я прямо пытаюсь перейти в это состояние, как вы ожидаете, я получаю ошибку 404 естественным образом. Как заставить перенаправить index.html на это состояние?javascript window.history API при загрузке первой страницы

+0

Можете ли вы поделиться некоторым кодом вашего маршрутизатора? Например, часть, которая работает не так, как ожидалось? – Pandaiolo

+0

Я могу привести [link] (http://html5demos.com/history) в качестве примера. Я нашел его, когда искал решение и лучшие практики. То же самое происходит и здесь. – erdysson

+0

проблема есть; после того, как вы переходите в несколько штатов, когда вы обновляете браузер, он пытается отправить запрос – erdysson

ответ

1

История HTML5 (pushState и т. Д.) Работает путем переписывания URL-адреса на стороне клиента. Следовательно, серверу необходимо также переписать URL-адрес и загрузить тот же файл index.html, независимо от URL-адреса.

Без этого сервера переписывания, два возможных варианта:

  • Использование JavaScript маршрутизатор hashbang, основанный на URL, как /idex.html#!/current/path

  • Не используйте JavaScript для маршрутизации, и полагаться только на сервер каталогов структура для обслуживания разных файлов для каждой конечной точки

+0

Я просто бросаю вызов себе, чтобы создать ui-router как угловые, crossroads.js или history.js. Я решил использовать hashbang и хорошо выглядеть :) – erdysson

+0

Прохладный! Можете ли вы подтвердить свой ответ, если он вам подходит? Благодаря ! – Pandaiolo

Смежные вопросы