Многоязычные веб-сайты Статических веб-приложений 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
Я надеюсь, что проблема будет решена, так как она ограничивает использование статических веб-приложений.