Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅适用于某些管线的角度通用渲染_Javascript_Angular_Angular Universal - Fatal编程技术网

Javascript 仅适用于某些管线的角度通用渲染

Javascript 仅适用于某些管线的角度通用渲染,javascript,angular,angular-universal,Javascript,Angular,Angular Universal,我玩过angular universal,但找不到只对某些页面(如主页)使用服务器端渲染的选项,也找不到以标准angular方式渲染所有其他路由的选项。我不想在不需要SEO的私有页面上使用服务器端呈现。我可以像这样在express中配置路由 // send all requests to Angular Universal // if you want Express to handle certain routes (ex. for an API) make sure you adjust t

我玩过angular universal,但找不到只对某些页面(如主页)使用服务器端渲染的选项,也找不到以标准angular方式渲染所有其他路由的选项。我不想在不需要SEO的私有页面上使用服务器端呈现。我可以像这样在express中配置路由

// 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,而是在angular routes config上使用类似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 },
];
在您的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 });
});

希望这能有所帮助。

您需要返回未呈现路由的index.html文件,方法如下:
app.get(routePattern,(req,res)=>{res.sendFile(distFolder+'/index.html');})