通用:有些路线有效,有些则无效

时间:2019-01-13 05:54:55

标签: angular

Link到问题中的仓库

摘要:

我分叉了angular-universal-starter回购并添加了一条路线。但令人惊讶的是,它只是无法正常工作。我似乎无法理解为什么它不起作用。原来在仓库中的路由可以正常工作。

我使用here中提到的以下命令创建了预渲染的SSR:

npm run build:prerender && npm run serve:prerender

详细问题:

回购协议最初具有/lazy路由。在以下所有情况下都能正常工作:

  1. 在普通应用中(由ng serve服务)

  2. 在SSR应用中,首先导航到/,然后单击按钮导航到/lazy

  3. 在SSR应用中,当直接导航到/lazy

  4. 在SSR应用程序(浏览器中禁用了Javascript)中,直接导航至/lazy

我添加了一条路线/login

  1. 在普通应用中(由ng serve服务):工作正常

  2. 在SSR应用中,首先导航到/,然后单击按钮导航到/login工作正常

  3. 在SSR应用中,当直接导航到/login时:不起作用

  4. 在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 });
});

0 个答案:

没有答案