Как получить базу хостов + из angular $location

У меня есть приложение angular, расположенное в каталоге 'someApp'. Url http://example-domain/someApp/#/ для некоторого государственного url с контуром: http://example-domain/someApp/#/user/login. Я там "angular путь", чтобы получить эту часть http://example-domain/someApp/

var redirectUri = $location.absUrl();
redirectUri = redirectUri.substr(0, redirectUri.indexOf('#'));
2 ответа

Самый простой способ - использовать

window.location.origin + window.location.pathname

который вернет http://example-domain/someApp

Это обеспечит весь базовый url, даже если вы используете виртуальные каталоги/пути. Однако IE не поддерживает происхождение. В результате вы могли бы объединить компоненты URL-адреса, чтобы предоставить вам базовый каталог следующим образом:

window.location.protocol + "//" + window.location.hostname + window.location.pathname

который вернет http://example-domain/someApp

Если вы используете виртуальные каталоги, вам будет сложно использовать $location, так как $location.path() возвращает ПОСЛЕ хеша, а $location.host() возвращает только домен, а не домен и каталог, что означает window.location.hostname + window.location.pathname.


Вам нужно использовать:

location.origin + location.pathname

Скажите, что URL-адрес http://example.com/#/some/path?foo=bar&baz=xoxo

$location.protocol(); // will give: http
$location.host(); // will give: example.com
location.host // will give: example.com:8080
$location.port(); // will give: 8080
$location.path(); // will give: /some/path
$location.url(); // will give: /some/path?foo=bar&baz=xoxo

Подробное описание

licensed under cc by-sa 3.0 with attribution.