我有一个带有代理的Azure Function应用程序,用于处理对Angular应用程序(存储在帐户中)和API(Web应用程序)的请求。一切正常,但当我尝试进入SPA的特定页面时,出现404错误。这是我的代理人的描述:
index.html
时提供https://proxy.com
文件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
不存在,这就是为什么我似乎无法弄清楚它的原因。 / p>
编辑
我发现我可以保留我的设置,而只是将404错误重定向到index.html
。这是在Angular documentation中指定的。还有examples关于如何配置Web服务器的信息,但在我的情况下,它是无服务器的,并且重定向由代理处理。