2016-05-16 4 views
0

Я использую маршрутизацию angularjs в своем веб-приложении, и я включил $ locationProvider и базовый тег в HTML-заголовке, который равен <base href="/webapp/">, чтобы удалить хеш-символ в URL-адресе, он отлично работает когда я перенаправляю с помощью якорных тегов, например <a href="/webapp/home">Home</a>, но дает ошибку 404 при перенаправлении с помощью javascript, например. window.location.href = '/webapp/home';. Пробовал все, но пока ничего, никакая помощь будет высоко оценена. Заранее спасибо.Переадресация страницы не работает с AngularJS

+0

Не могли бы вы показать нам какой-нибудь код? –

+0

попробуйте использовать $ location.path ('/ webapp/home'); – mtamma

+0

Что такое веб-сервер? Если nginx, добавьте некоторые lo_ try_files. Проверьте [угловой html5mode с nginx] (http://stackoverflow.com/questions/26810142/ngix-config-for-angularjs-html5-mode-with-templates-and-assets) –

ответ

0

Попробуйте: <a href="#/webapp/home">Home</a>

При использовании углового (JavaScript) маршрутизации; Маршрутизация JavaScript начинается после # ключевого слова в URL-адресе, другой мудрый браузер считает, что это триггер маршрутизации на стороне сервера; или страница будет обновляться.

USE: <a href="#/webapp/home">Home</a>

$ locationProvider удалит # после перенаправления в представлении.

+0

Пробовал, но все, что он мне дает, это URL-адрес в строке URL http: // localhost/webapp/#% 2Fwebapp% 2Fhome и не идет в нужная страница – lulliezy

+0

Понял, что все было в файле .htaccess, и нет, вы не включаете # в каждый URL, вот код .htaccess, который я включил: 'RewriteEngine On RewriteCond% {REQUEST_FILENAME}! -f RewriteRule^(. *) $% {ENV: BASE} index.htm [QSA, L] ' – lulliezy

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