在IIS中,我的网络应用程序在网站下的应用程序中运行。因此,它不是www.example.com
可访问的,而是www.example.com/somepath/
。
如果我使用window.location.pathname
,我可以抓住/somepath/
部分,但是使用Angular' $location.path()
我什么也得不到。从官方文档中,似乎$location.path()
应该只获得散列后的内容,例如www.example.com/somepath/#/nextbit
会给我/nextbit
。
那么我如何获得托管网站的实际路径?
答案 0 :(得分:2)
如果您想使用Angular $location
服务,请尝试以下方法:
var baseUrl = $location.absUrl().replace('#/' + $location.url(), '');
absUrl()
将获取整个网址,而url()
将获得#/
之后的网址部分
答案 1 :(得分:0)
由于哈希之前的信息与Angular的内部工作方式不相关,我不认为绕过Angular的内部方法($location
)会很糟糕在这种情况下练习。
我会按照你原来的假设,因为它仍然有效:
location.pathname
除非你担心Angular内部的绑定在获取该路径之前已被解雇(这不应该对静态的IIS应用程序路径产生影响),否则这应该没问题。