Как передать определенную страницу в index.html с помощью прокси-серверов функций Azure - PullRequest
0 голосов
/ 01 июня 2019

У меня есть приложение-функция 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. Это указано в угловой документации . Есть также примеров о том, как настроить веб-сервер, но в моем случае это не сервер и перенаправление, которое будет обрабатываться прокси.

...