相关疑难解决方法(0)

Angular 9:使用 angular i18n 和服务器端渲染(angular Universal)

我正在将 angular 7 应用程序迁移到 angular 9,它使用服务器端渲染(angular 通用)和 angular i18n 用于 2 种语言(法语和英语)。

在旧的 angular 7 流程中,由于我使用的是 AOT,因此我必须为生产进行 5 次构建:

  • 2 x 客户端构建(1 个用于法语,1 个用于英语)
  • 2 x 服务器构建(1 个用于法语,1 个用于英语)
  • server.ts 的构建

然后,在server.ts我动态加载正确的服务器包

旧服务器.ts

app.engine('html', (_, options: any, callback) => {

  const isFR= options.req.url.indexOf('site-fr') >= 0 ;
  const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = isFR ? require('./dist/server/fr/main') : require('./dist/server/en/main');

// Our index.html we'll use as our template
  const template = readFileSync(join(DIST_FOLDER, 'browser', isFR ? 'fr' : 'en', 'index.html')).toString();
  renderModuleFactory(AppServerModuleNgFactory, {
    // Our …
Run Code Online (Sandbox Code Playgroud)

server-side-rendering angular-i18n angular-universal angular angular9

6
推荐指数
1
解决办法
3613
查看次数