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"
],
И теперь это работает.