Запретить Angular обновление базового href с помощью langcode - PullRequest
2 голосов
/ 11 февраля 2020

У меня проблема с angular v9. Я внедрил функции локализации i18n в свое приложение. Когда я пытаюсь создать свое приложение с определенным расположением, оно постоянно добавляет подпапку к базовому пути href (но я хочу сохранить файлы в подпапке). Есть ли способ предотвратить добавление локали в базовую ссылку href?

Этапы воспроизведения:

  1. Создать фиктивный проект ng new Project.
  2. Создание рабочей конфигурации ng build --prod --localize.
  3. Файлы встроены в папку dist/en-us/, но index.html содержит <base href="/en-US/">.

Есть ли способ заставить angular прекратить добавление langcode в base href? Это приводит к тому, что все ссылки приложения содержат код языка, что нежелательно.

Мое развертывание настроено на развертывание приложения на основе каталога в другое место, каждое из которых будет на root.

  • hxxp: //app.fr/ root в /fr/ папке
  • hxxp: //app.de/ root в /de/ папке

Ответы [ 3 ]

1 голос
/ 11 февраля 2020

Публикация с моим решением, но это убивает новую функцию Angular v.9.

Решение состоит в том, чтобы не использовать флаг --localize.

Поэтому я удалил определение:

"i18n": {
    "sourceLocale": "de",
    "locales": {
      "fr": "src/app/locale/messages.fr.xlf",
}

Затем я создал пользовательскую конфигурацию в:

  "configurations": {
    "fr": {
      "i18nFile": "src/app/locale/messages.fr.xlf",
      "i18nLocale": "fr",
      "outputPath": "dist/fr"
    }

И просто вызвал:

ng build --configuration=fr

Но это некрасиво .. так что жду лучших идей :)

0 голосов
/ 23 апреля 2020

У меня была такая же проблема, и я нашел решение в этой проблеме:

https://github.com/angular/angular-cli/issues/17260

Вы должны написать для каждой локали и для вашего sourceLocale baseHref

"i18n": {
    "sourceLocale": {
        "code": "en",
        "baseHref": ""
    },
    "locales": {
        "fr": {
            "baseHref": "",
            "translation": "src/locale/messagesfr.xlf"
        }
    }
}
0 голосов
/ 12 апреля 2020

Вы можете переопределить baseHref следующим образом:

"locales": {
  "de": {
    "translation": "src/locale/messages.de.xlf",
    "baseHref": "/"
  },
....
}
...