我使用默认路径位置策略在Angular 2应用程序中实现了路由。它工作正常,但重新加载非默认URL路径时,将呈现与默认路由关联的组件,而不是与路径路径关联的组件。
例如,http://localhost:5000/locator/bycounty
在从服务器重新加载URL时显示http://localhost:5000
处的组件(我将服务器端路由集设置为解析到同一文件的所有静态路径)。
这是预期的行为还是我的应用程序行为不端?
答案 0 :(得分:1)
答案是应用程序行为不端。原因是我在初始化时动态设置了基础,而不是使用简单的<base href="/" />
。
bootstrap(AppComponent, [
ROUTER_PROVIDERS,
provide(APP_BASE_HREF, { useValue: location.pathname }) // <= BAD
]);
在尝试修复不同的路由器问题时,我曾在某处复制了provide(....)
代码行。此行根据加载时的URL路径动态设置路由器的根路径。这就是为什么在初始加载时我总是看到默认路由而不是URL路径所代表的路由。