Angular 通用服务器错误:使用默认后备时,必须在配置中提供后备语言
Posted
技术标签:
【中文标题】Angular 通用服务器错误:使用默认后备时,必须在配置中提供后备语言【英文标题】:Angular universal server error: When using the default fallback, a fallback language must be provided in the config 【发布时间】:2020-07-21 10:05:03 【问题描述】:我已经在我的应用程序上安装了 Angular Universal。
运行npm run build:s-s-r
- 完成。作品。
运行npm run server:s-s-r
- DONE.WORKS。
访问服务器URL(localhost:4000)后,页面未完全加载,终端报如下错误:
【问题讨论】:
你在使用 i18n 吗?你能显示你的 angular.json 文件吗? 已经设法修复它。 i18n 配置确实有问题。非常感谢。 【参考方案1】:我也遇到了同样的问题,所以我想分享一下我的发现。
对我来说,有两个可能的原因/解决方案:
首先,在我的项目的 I18N 默认 JSON 文件 en.json 中,JSON 文件的结构存在问题。例如,我犯了以下错误。我错过了第二个标签“FINISH”后的逗号:
"COMMON":
"EDIT": "Edit",
"FINISH": "Finish"
"QUIT": "Quit",
所以在更正结构后,应用程序运行良好,没有错误。
其次,问题的另一个原因可能是,在运行时 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
)
【讨论】:
【参考方案2】:模块文件中没有完全配置 i18n Transloco。
【讨论】:
以上是关于Angular 通用服务器错误:使用默认后备时,必须在配置中提供后备语言的主要内容,如果未能解决你的问题,请参考以下文章