【问题标题】:Prevent Angular from updating base href with langcode防止 Angular 使用 langcode 更新基本 href
【发布时间】:2020-05-26 22:25:59
【问题描述】:

我对 Angular v9 有疑问。我已经在我的应用程序中实现了 i18n 本地化功能。当我尝试使用某个位置构建我的应用程序时,它会不断地将子文件夹添加到基本 href 路径(但我想将文件保留在子文件夹中)。 有什么方法可以防止将语言环境添加到基本 href url 中?

复制步骤:

  1. 生成虚拟项目ng new Project
  2. 构建生产配置ng build --prod --localize
  3. 文件内置在dist/en-us/ 文件夹中,但index.html<base href="/en-US/">

有什么方法可以强制 Angular 停止将 langcode 添加到 base href 中? 这会导致所有应用程序链接都包含不需要的语言代码。

我的部署配置为根据目录将应用程序部署到不同的位置,每个位置都将位于根目录下。

  • hxxp://app.fr/ /fr/ 文件夹中的根目录
  • hxxp://app.de/ 根目录在/de/ 文件夹中

【问题讨论】:

    标签: angular angular-i18n


    【解决方案1】:

    我遇到了同样的问题,并在这个问题中找到了解决方案:

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

    您必须为每个语言环境和您的 sourceLocale 编写 baseHref

    "i18n": {
        "sourceLocale": {
            "code": "en",
            "baseHref": ""
        },
        "locales": {
            "fr": {
                "baseHref": "",
                "translation": "src/locale/messages.fr.xlf"
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      在 Dockerfile 中:

      运行 sed -i "s/

      【讨论】:

        【解决方案3】:

        你可以用这个覆盖baseHref:

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

        【讨论】:

          【解决方案4】:

          发布我的解决方案,但这会扼杀 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
          

          但这很丑……所以等待一些更好的想法:)

          【讨论】:

          • ..标记我自己的回答,因为没有更好的答案:(
          猜你喜欢
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-02
          • 2020-01-07
          • 1970-01-01
          • 2018-01-05
          相关资源
          最近更新 更多