Как установить другой путь к ресурсам i18n для приложения разработки и производственной версии в Angular

#angular #ngx-translate

#angular #ngx-translate

Вопрос:

Когда я использую свою версию приложения Angular для разработки, все пути являются правильными. Но когда я создаю свое приложение для производственной версии, я развертываю его в контексте / интерфейсе /.

Я хочу изменить путь к ресурсам i18n (я использую ngx-translate) только для производственной версии моего приложения, поэтому я попробовал эту команду, которую я использую для создания приложения для производства:

"build-prod": "ng build --deploy-url /frontend/ --prod --base-href /frontend/",

но это не работает, мои ресурсы i18n в приложении prod все еще ищут путь по умолчанию введите описание изображения здесь

Ответ №1:

Вы можете использовать isDevMode() от Angular, чтобы указать разные пути для разработчиков и разработчиков. Пример:

 export const createTranslateLoader = (http: HttpClient) => {
  const cacheBuster = new Date();
  return new TranslateHttpLoader(
    http,
    isDevMode() ? "/assets/i18n/" : "/frontend/assets/i18n/",
    ".json?cacheBuster="   cacheBuster
  );
};