11

我正在使用 Angular Universal,但找不到仅对某些页面(如主页)使用服务器端渲染并以标准角度方式渲染所有其他路由的选项。我不想对不需要 SEO 的私人页面使用服务器端渲染。我可以像这样在快递中配置路线

// send all requests to Angular Universal
// if you want Express to handle certain routes (ex. for an API) make sure you adjust this
app.get('/', ngApp);
app.get('/home', ngApp);
app.get('/about', ngApp);

理想情况下,我根本不想了解 NodeJ,并将其配置为具有 serverSide: true 等属性的角度路由配置

const appRoutes: Routes = [
  //public route, I want server rendering for SEO
  { path: 'home', component: HomeComponent, serverSide: true },
  //private user profile page, SEO is not needed
  { path: 'user/profile/:id', component: UserProfileComponent },
];
4

1 回答 1

9

在你不想渲染的路由的 server.ts 中,如下所示

app.get('/api/**', (req, res) => { });

app.get('/app/**', (req, res) => {
  console.log('not rendering  app pages');
});

app.get('/auth/**', (req, res) => {
  console.log('not rendering auth page');
});

// 所有常规路由都使用通用引擎

app.get('*', (req, res) => {
  res.render('index', { req });
});

希望这可以帮助。

于 2017-11-27T01:40:13.617 回答