我正在构建一个不在根位置的 AngularJS 应用程序domain.tld/blog
。我为/blog
基地上的所有东西设置了路由设置。我在页面的头部包含了基本标签<base href="/blog">
。html5Mode
设置为true
。在应用程序中,一切都按预期工作。但是,当我单击基本位置之外的非角度 URL 时,不会加载页面。似乎这个位置被otherwise
路由器中的功能捕获:
ROUTER.otherwise({
redirectTo : '/blog'
});
因此,当我单击任何 url 时,即domain.tld/somewhere-else
重定向到 domain.tld/blog。显然这是您所期望的:对于在路由器中找不到的每个 URL,将其重定向到“主页”。在我的应用程序中,这不是所需的行为。所有不在路由器中的 url 都应被视为普通 url 并触发页面重新加载到该 url。
所以我需要的是这样的:
ROUTER.otherwise(
window.location = theRequestedUrl;
);
这显然不起作用。但不知何故,我需要进入路由器的其他部分,并告诉它重定向到页面并重新加载页面。
以下问题是相关的:角度路由发生了一些奇怪的事情
以下 jsFiddle 演示了该问题(感谢@rdjs!)http://fiddle.jshell.net/43tub/6/show/light/。单击/outside
链接应该会刷新整页...