【问题标题】:Ionic ngx-translate giving me assets/i18n/.json 404 (Not Found)Ionic ngx-translate 给我 assets/i18n/.json 404(未找到)
【发布时间】:2018-08-25 22:53:36
【问题描述】:

在我的 Ionic 应用程序上,ngx-translate 在控制台上给我这个消息:

.... assets/i18n/.json 404(未找到)

关于 HttpErrorResponse 的另一个细节

所以我在 BROWSER 上的应用一直出现此错误,当我构建以在手机上使用时,它只会触发带有此错误的警报消息并关闭应用

我的设置: 安卓。 "cordova-plugin-crosswalk-webview": "^2.4.0" "@ngx-translate/core": "^9.1.1", "@ngx-translate/http-loader": "^2.0.1", 离子 3

这是我的 app.module.ts

import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, '../assets/i18n/', '.json');
}

imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
    HttpClientModule,
    TranslateModule.forRoot({
        loader: {
            provide: TranslateLoader,
            useFactory: HttpLoaderFactory,
            deps: [HttpClient]
        }
    })

我看到其他用户遇到问题

export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, '../assets/i18n/', '.json');

将其更改为 Http 而不是 HttpClient,但对我没有用。 Typescript 告诉我 http 必须是 HttpClient 类型。

这是我的 app.component.ts

import { TranslateService } from '@ngx-translate/core';
.
.
.
constructor(
    private translateService: TranslateService,
    public platform: Platform,
    public statusBar: StatusBar,
    public splashScreen: SplashScreen
  ) {


    this.initializeApp();

  }

initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();

      // this.setAppTranslation();
      this.translateService.addLangs(["en", "pt"]);
      this.translateService.setDefaultLang('en');
      this.translateService.use('en');

    });
  }

我已按照本教程将该功能应用于我的应用程序: https://www.gajotres.net/ionic-2-internationalize-and-localize-your-app-with-angular-2/

谁能帮我至少理解一下?

我的 assets/i18n 文件夹有 2 个文件: en.json pt.json

【问题讨论】:

  • 您的文件在哪里?我的 json 文件在 src/ 中,我使用这个地址:./assets/i18n/
  • @Mohsen 我已将 en.json 和 pt.json 文件放在:"assets/i18n/" :(
  • 好的,但是在代码中你使用了这样的东西:'../assets/i18n/'。为什么?将其更改为 ./assets/i18n/
  • @Mohsen 我已经改变了。并尝试这些:./assets /assets assets src/assets

标签: ionic-framework ionic2


【解决方案1】:

我以前也遇到过这个问题,试试这两个方法:

把你的加载器改成这个(正如@Mohsen 所说):

return new TranslateHttpLoader(http, './assets/i18n/', '.json');

还有你的 useFactory 到这个:

useFactory: (HttpLoaderFactory)

重要提示:确保您的资产文件夹处于此级别:

/src/资产/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多