ngx-translate: метод createTranslateLoader с пользовательским путем не работает при компиляции как AOT

В настоящее время я пытаюсь создать приложение с некоторыми i18n. Я использую ngx-translate для перевода моего приложения.

Все работает, пока я не попытаюсь отредактировать метод createTranslateLoader для получения моих файлов.json из другой папки.

На данный момент у меня есть (и работает):

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

Но когда я изменяю./assets/i18n/ на./locale/i18n/ (который находится на том же уровне, что и ресурсы, и имеет то же содержимое, что и папка locale / i18n /), я получаю следующую ошибку:

ОШИБКА Object {headers: Object, status: 404, statusText: "Not Found", url: " http://localhost:8910/locale/i18n/en.json ", ok: false, name: "HttpErrorResponse", сообщение: "Http-ответ об ошибке для http://localhost:8910/locale/i18n/en.json ", ошибка: "

Я компилирую в AOT, поэтому после сборки я посмотрел на папку dist. Там я увидел, что в скомпилированной папке все еще есть папка 'Assets' с папкой i18n (и необходимыми файлами json).

Так что теперь кажется, что нет никакого способа установить translateLoader в пользовательскую папку при компиляции как AOT, у кого-нибудь есть идея, как я могу решить эту проблему?

1 ответ

[Решено]

В файле.angular-cli.json есть атрибут 'assets'. Насколько я понимаю, там вы можете добавить папки, которые вы хотите создать при компиляции в AOT

 "assets": [
        "assets",
        "locale/i18n",   //Added this line
        "favicon.ico"
      ],

И теперь это работает.

Другие вопросы по тегам