У меня есть приложение-функция Azure с прокси-серверами для обработки запросов к моему Angular App (размещенному в учетной записи хранения) и моему API (веб-приложению). Все отлично работает, за исключением случаев, когда я пытаюсь перейти на определенную страницу моего SPA, я получаю ошибку 404 Вот описание моих прокси:
- Обрабатывает вызовы моего API
- Служит
index.html
файлу при переходе на https://proxy.com
- Служит статическим файлам, расположенным в корне. Сборка Angular содержит в своей основе
index.html
, а также main.js
, runtime.js
и т. Д. *
- Служит статическим ресурсам, таким как изображения
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"api": {
"matchCondition": {
"route": "/api/{*url}"
},
"backendUri": "https://webapp.com/api/{url}"
},
"appIndex": {
"matchCondition": {
"route": "/",
"methods": [ "GET" ]
},
"backendUri": "https://storage.com/index.html"
},
"appAssetsRoot": {
"matchCondition": {
"route": "/{*asset}",
"methods": [ "GET" ]
},
"backendUri": "https://storage.com/{asset}"
},
"appAssetsFolder": {
"matchCondition": {
"route": "/assets/{*asset}",
"methods": [ "GET" ]
},
"backendUri": "https://storage.com/assets/{asset}"
}
}
}
Недостающая часть заключается в том, что мне нужно, чтобы https://proxy.com/main.js
был обработан моим третьим прокси (который он есть), , но не https://proxy.com/some-page
. Мне нужно, чтобы страницы были перенаправлены на index.html
.
Есть ли способ разделить в двух прокси запросы на страницы и запросы на файлы, расположенные в корне?
Я попытался создать общий прокси-сервер для рута, который бы обрабатывал оба случая, но, поскольку мы имеем дело с SPA, some-page.html
не существует, и поэтому я не могу понять это.
EDIT
Я обнаружил, что могу оставить свои настройки как есть и просто перенаправить ошибки 404 на index.html
. Это указано в угловой документации . Есть также примеров о том, как настроить веб-сервер, но в моем случае это не сервер и перенаправление, которое будет обрабатываться прокси.