如何在 Angular 应用程序生产构建中更改 i18n Angular 翻译模块文件的路径

Pat*_*ryk 5 angular-i18n angular

我想将我的应用程序放在http://example.com/my_dir路径中,首先我必须向我的构建命令添加一个 option build --prod --base-href=/my_dir/。一切正常,但我只遇到翻译文件的问题。通常我将它们保存在 assets/i18n/ 目录中,如何将此文件的请求路径更改为 /my_dir/assetes/i18n ?

我使用 Angular 8 和 TranslateModule

这是我在 app.module.ts 中的配置

import {TranslateModule, TranslateLoader} from "@ngx-translate/core";
import {TranslateHttpLoader} from "@ngx-translate/http-loader";

// AoT requires an exported function for factories
export function HttpLoaderFactory(httpClient: HttpClient) {
  return new TranslateHttpLoader(httpClient);
}

imports: [
...,
TranslateModule.forRoot({
 loader: {
  provide: TranslateLoader,
  useFactory: HttpLoaderFactory,
  deps: [HttpClient]
 }
})
]
Run Code Online (Sandbox Code Playgroud)

已解决 我在此处添加了 TranslateHttpLoader(httpClient)

// AoT requires an exported function for factories
export function HttpLoaderFactory(httpClient: HttpClient) {
  return new TranslateHttpLoader(httpClient);
}
Run Code Online (Sandbox Code Playgroud)

附加前缀选项 return new TranslateHttpLoader(httpClient, '/my_dir/assets/i18n/');

效果很好