我正在编写一个带有java servlet后端的Web应用程序,我正在检查前端的角度。由于servlet中特定资源的地址取决于它所放置的servlet上下文,我想知道是否可以更改所有角度函数的基本URL。
实施例:
如果我在webapp <a href='/newaccount'>Create new account</a>
中创建了一个链接,并且我相应地配置了路由提供程序$routeProvider.when('/newaccount', ...
,无论我的servlet放在什么servlet上下文中,我希望它能工作。所以,如果我将我的servlet放在一个上下文中称为“mycontext”,资源的实际网址为[hostname]/mycontext/newaccount
。
我可以以某种方式设置角度并传入上下文名称,以便它被预先添加到所有位置和配置的路由?这样servlet可以放在不同的上下文中,仍然有效。
答案 0 :(得分:4)
实际上有两个路由 - 一个在后端,一个在前端。你不是想念他们吗?
当您在AngularJS中配置$routeProvider
时,您正在配置客户端路由,因此网址会有[hostname]/anypath/yourpage/#/newaccount
(如果您使用的是HashBang模式,则默认为AngularJS )。
但当然你可以改变基础。例如,Plunker使用这种方式:
<script>
document.write('<base href="' + document.location + '" />');
</script>
您可以在此处找到更多信息,包括HTML5和HashBang模式:https://docs.angularjs.org/guide/$location(还有关于<base>
和 Html链接重写的说明)