Angular 通用服务器错误:使用默认回退时,必须在配置中提供回退语言

Ron*_*ofe 2 node.js express server-side-rendering angular-universal angular

我已经在我的应用程序上安装了 angular Universal。运行npm run build:ssr- 完成。作品。运行npm run server:ssr- DONE.WORKS。

访问服务器 URL (localhost:4000) 后,页面未完全加载并在终端上引发以下错误:

在此处输入图片说明

Gol*_*olu 5

我也遇到了同样的问题,所以我只想分享我的发现。

对我来说,有两个可能的原因/解决方案:

  • 首先,在我项目的 I18N 默认 JSON 文件en.json 中,我在 JSON 文件的结构中遇到了问题。

例如,我有以下错误。我错过了第二个标签 'FINISH' 后面的逗号:

{
"COMMON": {
    "EDIT": "Edit",
    "FINISH": "Finish"
    "QUIT": "Quit",
   }
}
Run Code Online (Sandbox Code Playgroud)

所以在纠正结构后,应用程序运行良好,没有错误。

  • 其次,问题的另一个原因可能是,在运行时 transloco 无法在所选语言中找到正确的标签,因此它寻找后备语言,甚至在 transloco-root.module.ts 中都找不到,所以添加我的后备语言后,它试图在 transloco-root.module.ts 中指定的后备语言中找到相同的内容。

所以它发现了那个标签,问题得到了解决。

但是在提供的第二个解决方案中,您至少需要在该后备语言的 json 文件中以正确的格式使用该错误标签。

我添加了如下所示的后备语言:

useValue: translocoConfig({
            availableLangs: ['fr', 'en'],
            defaultLang: 'en',
            reRenderOnLangChange: true,
            fallbackLang: 'fr',
            prodMode: environment.production,
            missingHandler: {
                logMissingKey: true
            }
        })
Run Code Online (Sandbox Code Playgroud)