Angular通用仅限于特定路线

问题描述 投票:2回答:1

我正在尝试实现角度通用。但我想暂时仅在2条特定路线中限制SSR。原因是。 1)环球是仍在发展的东西,并导致@angular/flex-layoutnested lazy loading的一些意想不到的行为

2)我不需要在所有页面上使用SEO

所以我尝试过这样的事情

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

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

angular angular-universal
1个回答
4
投票

最后response.sendFile是我正在寻找的

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

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

© www.soinside.com 2019 - 2024. All rights reserved.