Link到问题中的仓库
摘要:
我分叉了angular-universal-starter回购并添加了一条路线。但令人惊讶的是,它只是无法正常工作。我似乎无法理解为什么它不起作用。原来在仓库中的路由可以正常工作。
我使用here中提到的以下命令创建了预渲染的SSR:
npm run build:prerender && npm run serve:prerender
详细问题:
回购协议最初具有/lazy
路由。在以下所有情况下都能正常工作:
在普通应用中(由ng serve服务)
在SSR应用中,首先导航到/
,然后单击按钮导航到/lazy
在SSR应用中,当直接导航到/lazy
在SSR应用程序(浏览器中禁用了Javascript)中,直接导航至/lazy
我添加了一条路线/login
,
在普通应用中(由ng serve服务):工作正常
在SSR应用中,首先导航到/,然后单击按钮导航到/login
:工作正常
在SSR应用中,当直接导航到/login
时:不起作用
在SSR应用程序(浏览器中禁用了Javascript)中,当直接导航至/login
时:不起作用。我收到以下错误:
(未找到该网址的网页: http://127.0.0.1:8080/login)
app.module.ts(link)
RouterModule.forRoot([
{ path: 'login', component: HomeComponent, pathMatch: 'full'},
{ path: 'lazy', loadChildren: './lazy/lazy.module#LazyModule'},
]),
lazy.module.ts(link)
RouterModule.forChild([
{ path: '', component: LazyComponent, pathMatch: 'full'}
])
修改:
server.ts(link)配置为始终发送index.html
// All regular routes use the Universal engine
app.get('*', (req, res) => {
res.render('index', { req });
});