在 jhipster/angular 网关应用程序中,我试图将 LocationStrategy 从 HashLocationStrategy 更改为 PathLocationStrategy。此更改的原因是我尝试使用 Linkedin 对用户进行身份验证,并且在 Linkedin 应用程序配置中,我需要回调 URL 不能包含哈希 #
我已经从不同的来源阅读过它,最接近我的选项包括以下内容:
在
src/main/webapp/app/app-routing.module.ts我分配给函数第二个参数的对象中的useHash值falseRouterModule.forRoot()在
src/main/webapp/index.htmlindex.html 中,我按照文档<base href='/'>中的建议添加
通过上述方法,我设法消除了主页的哈希,我也设法进行了身份验证,但是当尝试在应用程序中导航失败时,可以在浏览器控制台中读取以下错误
ERROR Error: Uncaught (in promise): Error: RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.
provideForRootGuard@webpack-internal:///./node_modules/@angular/router/fesm5/router.js:5608:15
_callFactory@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:21635:20
_createProviderInstance@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:21591:26
initNgModule@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:21521:32
NgModuleRef_@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:22248:21
createNgModuleRef@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:22237:12
NgModuleFactory_.prototype.create@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:24772:25
RouterConfigLoader.prototype.load/<@webpack-internal:///./node_modules/@angular/router/fesm5/router.js:3678:34
MapSubscriber.prototype._next@webpack-internal:///./node_modules/rxjs/_esm5/internal/operators/map.js:40:35
Subscriber.prototype.next@webpack-internal:///./node_modules/rxjs/_esm5/internal/Subscriber.js:63:18
MergeMapSubscriber.prototype.notifyNext@webpack-internal:///./node_modules/rxjs/_esm5/internal/operators/mergeMap.js:94:26
InnerSubscriber.prototype._next@webpack-internal:///./node_modules/rxjs/_esm5/internal/InnerSubscriber.js:19:21
Subscriber.prototype.next@webpack-internal:///./node_modules/rxjs/_esm5/internal/Subscriber.js:63:18
subscribeToPromise/</<@webpack-internal:///./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js:10:28
ZoneDelegate.prototype.invoke@webpack-internal:///./node_modules/zone.js/dist/zone.js:390:26
onInvoke@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:17652:33
ZoneDelegate.prototype.invoke@webpack-internal:///./node_modules/zone.js/dist/zone.js:389:52
Zone.prototype.run@webpack-internal:///./node_modules/zone.js/dist/zone.js:149:43
scheduleResolveOrReject/<@webpack-internal:///./node_modules/zone.js/dist/zone.js:888:34
ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:422:31
onInvokeTask@webpack-internal:///./node_modules/@angular/core/fesm5/core.js:17643:33
ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:421:60
Zone.prototype.runTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:194:47
drainMicroTaskQueue@webpack-internal:///./node_modules/zone.js/dist/zone.js:600:35
promise callback*scheduleMicroTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:583:28
ZoneDelegate.prototype.scheduleTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:412:38
onScheduleTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:300:29
ZoneDelegate.prototype.scheduleTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:403:51
Zone.prototype.scheduleTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:237:43
Zone.prototype.scheduleMicroTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:257:25
scheduleResolveOrReject@webpack-internal:///./node_modules/zone.js/dist/zone.js:878:14
resolvePromise@webpack-internal:///./node_modules/zone.js/dist/zone.js:824:44
makeResolver/<@webpack-internal:///./node_modules/zone.js/dist/zone.js:740:31
webpackJsonpCallback@https://localhost:9060/app/main.bundle.js:26:29
@https://localhost:9060/app/42.chunk.js:1:57
src/main/webapp/app/app-routing.module.ts看起来和这个相似
@NgModule({
imports: [
RouterModule.forRoot(
[
{
path: 'admin',
loadChildren: './admin/admin.module#AdminModule'
},
{
path: 'lorem',
loadChildren: './lorem/lorem.module#LoremModule'
},
{
path: 'ipsum',
loadChildren: './ipsum/ipsum.module#IpsumModule'
}
],
{ useHash: false, enableTracing: DEBUG_INFO_ENABLED }
)
],
exports: [RouterModule]
})
export class AppRoutingModule {}