Многоязычные веб-сайты Статических веб-приложений Azure, использующие микроформат (например, en-GB , it-IT )

Можно четко поддерживать URL-адреса, такие как

https://www.myawsomeapp.com/en-GB/https://www.myawsomeapp.com/it-IT/

маршруты angularмаршруты, и нам нужен запасной вариант для возврата к содержимому стран.

в файловой системе есть папка для каждого микроформата, и в каждой папке есть переведенный index.html с сопутствующими переведенными файлами JavaScript.

чтобы заставить его работать, вам понадобятся два запасных варианта, один для en-GB и один для it-IT.

Вы можете заставить его работать со следующим

      "routes" : [
        {
            "route": "/it-IT/search",
            "rewrite": "it-IT/index.html"
        },
        {
            "route": "/it-IT/customer",
            "rewrite": "it-IT/index.html"
        },
        {
            "route": "/it-IT/about",
            "rewrite": "it-IT/index.html"
        }
]

Где search,customer и about — это маршруты внутри приложения, но для вышеперечисленного вам нужно повторить это для каждого языка и каждого маршрута, чтобы вскоре вы достигли максимального размера файла / максимальных маршрутов для конфигурации.

Было бы лучше, если бы мы могли сделать что-то с запасными вариантами, может быть, добавить baserefи иметь сбор или разрешить исключение на маршруте.

например

        "navigationFallbacks": [
      {
          "navigationFallback": {
              "baseRef": "en-GB",
              "rewrite": "en-GB/index.html",
              "exclude": [
                  "*.css",
                  "*.js",
                  "*.ico",
                  "*.txt",
                  "*.xml"
              ]
          }
      },
      {
          "navigationFallback": {
              "baseRef": "it-IT",
              "rewrite": "it-IT/index.html",
              "exclude": [
                  "*.css",
                  "*.js",
                  "*.ico",
                  "*.txt",
                  "*.xml"
              ]
          }
      }
  ]

или разрешить исключает

          "routes" : [
        {
            "route": "/it-IT/*",
            "rewrite": "it-IT/index.html",
            "exclude": [ "*.{js,css}", "/assets/*"]
        }
      ]

Моя менее совершенная работа заключается в том, чтобы иметь запись маршрута в configдля каждого маршрута, но мы скоро закончим, мы могли бы также использовать #фрагменты, а не /например #/aboutскорее, чем /aboutно это далеко не идеально.

1 ответ

Это известное ограничение и обсуждается здесь

https://github.com/Azure/static-web-apps/issues/527

Я надеюсь, что проблема будет решена, так как она ограничивает использование статических веб-приложений.

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