Javascript 仅适用于某些管线的角度通用渲染
我玩过angular universal,但找不到只对某些页面(如主页)使用服务器端渲染的选项,也找不到以标准angular方式渲染所有其他路由的选项。我不想在不需要SEO的私有页面上使用服务器端呈现。我可以像这样在express中配置路由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
// 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');})代码>