如何使用Azure Function代理将特定页面代理到index.html

时间:2019-05-31 22:13:51

标签: azure proxy azure-functions single-page-application azure-function-app-proxy

我有一个带有代理的Azure Function应用程序,用于处理对Angular应用程序(存储在帐户中)和API(Web应用程序)的请求。一切正常,但当我尝试进入SPA的特定页面时,出现404错误。这是我的代理人的描述:

  • 处理对我的API的调用
  • 转到index.html时提供https://proxy.com文件
  • 提供位于根目录下的静态文件。 Angular构建的根包含index.html以及main.jsruntime.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不存在,这就是为什么我似乎无法弄清楚它的原因。 / p>

编辑

我发现我可以保留我的设置,而只是将404错误重定向到index.html。这是在Angular documentation中指定的。还有examples关于如何配置Web服务器的信息,但在我的情况下,它是无服务器的,并且重定向由代理处理。

0 个答案:

没有答案