我有由node.js服务器提供的角度应用程序。手动刷新或直接输入url / xyz或/ abc时,如下例所示,我将其定向到主页。
例如:我单击导航按钮(xyz和abc),它分别将我带到https://mywebsite/xyz和https://mywebsite/abc。我只看到/ xyz或/ abc附加到https://mywebsite。
我在生产中有一定的偏见,已将其用作静态文件。我将显示一些代码片段。 请基于JWT对用户进行身份验证,它存储在localStorage中
应用路由
..I have imported those components here..
const appRoutes: Routes = [
{ path: 'home', component: HomeComponent , canActivate: [AuthGuard]},
{ path: '', component: HomeComponent,canActivate: [AuthGuard],
//{ path: '', component: SigninComponent,
children: [
{ path: '', component: xyz },
{ path: 'xyz', component: xyz },
{ path: 'abc', component: abc },
]}
];
@NgModule({
imports: [
RouterModule.forRoot(
appRoutes
)
],
exports: [RouterModule],
providers: [],
})
export class RoutingModule { }
app.js
app.use(express.static(path.join(__dirname, '/client')));
app.get('/',function(req,res){
res.sendFile(path.join(__dirname, 'client/index.html'));
});
let index = path.join(__dirname, '../../client/index.html');
res.sendFile(index);
我希望重定向到index.html时可以进入应用程序路由。因此,我在https://mywebsite/abc中进行手动刷新,而我仍然停留在https://mywebsite/abc本身而不是主页中。
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title> Portal</title>
<base href="/">
<app-root>
</app-root>
</body>
</html>
答案 0 :(得分:0)
如果我正确理解,您当前所在的页面将在刷新时自动重定向。
要解决此问题,您需要像这样在路由器中启用哈希路由:
imports: [
RouterModule.forRoot(appRoutes, {useHash: true})
],
这将导致角度不刷新时重定向到基本URL