Angular通用仅限于特定路线

时间:2018-03-16 16:04:13

标签: angular angular-universal

我正在尝试实施角度通用。但我想暂时仅在2条特定路线中限制SSR。 原因是。
1)通用仍在发展,并导致@angular/flex-layoutnested lazy loading

出现意外行为

2)我不需要在所有页面上搜索引擎优化

所以我尝试过这样的事情

app.get('/campaign/*/*', (req, res) => {
   res.render(join(DIST_FOLDER, 'browser', 'index.html'), { req });
});

app.get('/', (req, res) => {
   res.render(join(DIST_FOLDER, 'browser', 'index.html'), { req });
});

app.get('*', (req, res) => {

});

但是当我尝试在页面/campaign/new-channel中导航时,页面会永远重新加载 我期望的预期行为是通常没有任何内容呈现的页面。

我想我必须做一些不同的事情,因为node express应该将路由处理传递给angular 知道如何实现这个吗? server.ts 的其余代码将从此处https://github.com/angular/universal-starter/blob/master/server.ts

复制

PS stackoverflow Angular universal rendering for some routes only上有这篇文章,但没有提供解决方案。所以我做了这个,因为我不知道我是否允许在答案中打开新帖子

1 个答案:

答案 0 :(得分:3)

最后response.sendFile是我正在搜索的内容

app.get('/campaign/new-channel', function (req, res) {
   res.sendFile(join(DIST_FOLDER, 'browser', 'index.html'));
});

你想要的只是返回没有任何渲染内容的 index.html