为什么会遇到$location:nobase error
angularjs1.1.5v升级到1.8.0v的时候会抛出这个问题。问题的详情请参考: Error:location:nobase
问题分析
如果在ngApp.config()中使用了$locationProvider.html5Mode(true),那么angularjs 1.3.0v 之后的版本需要设置一个base URL。没有设置他的话就会抛出上面的error了。
解决方案
- 如果你的base URL是’/’(e.g. https://myapp.com/),有两种处理方法:
第一种: 在head tag 中设置base url为’/’
第二种:在html5Mode中设置requireBase 为 false<head> <base href='/'> ... </head> $locationProvider.html5Mode(true)
$locationProvider.html5Mode({ enabled: true, requireBase: false });
- 如果你的base URL 是’/subapp/’(e.g. https://myapp.com/subapp/)
<head> <base href='/subapp/'> ... </head> $locationProvider.html5Mode(true)