如何解决用于 dotnet core webapi 和 angular ui 的 GCP App Engine dispatch.yaml
我的默认服务的 URL 为“https://myprojectid.uc.r.appspot.com”,然后我部署了 .net 核心 webapi,服务名为“mywebapi-poc”,可使用“https:/”访问/mywebapi-poc-dot-myprojectid.uc.r.appspot.com"
现在我想使用 dispatch.yaml 来创建路由。 "https://myprojectid.uc.r.appspot.com/mywebapi-poc" 和 "https://myprojectid.uc.r.appspot.com/mywebui-poc" 可以将所有 web api 请求路由到 mywebapi-poc服务和对 mywebui-poc 服务的所有 web ui 请求
我怎样才能让它工作?
dispatch:
- url: "myprojectid.uc.r.appspot.com/"
service: default
- url: "myprojectid.uc.r.appspot.com/mywebapi-poc/*"
service: mywebapi-poc
- url: "myprojectid.uc.r.appspot.com/mywebui-poc/*"
service: mywebui-poc
这样做之后,当我这样称呼它时https://myprojectid.uc.r.appspot.com/mywebapi-poc/api/v1/WeatherForecast
我得到 404
Angular Web UI 的情况类似。第一个 index.html 页面加载,但随后的 angular 应用程序文件不会加载。例如,https://myprojectid.uc.r.appspot.com/mywebui-poc/ 以 200 响应加载 index.html,但 https://myprojectid.uc.r.appspot.com/mywebui-poc/main.js 未加载,我得到 404。 请注意,我之前使用“/”遇到了路径问题,因此我将 index.html 中的它替换为“/mywebui-poc/”
使用“/”,我可以使个人 UI 服务与 https://mywebui-poc-dot-myprojectid.uc.r.appspot.com
一起使用解决方法
App 引擎按照 dispatch.yaml 中提到的顺序的优先级编写调度规则。在文档中,他们声明
调度规则依赖于顺序,只有第一个规则 匹配一个 URL 将被应用。
在您的情况下,dispatch.yaml 中的第一个路由规则指向“默认”服务,并且域的特定部分 (myprojectid.uc.r.appspot.com/
) 在所有路由中都是通用的。因此,您尝试使用此域访问的 URL 将路由到默认服务。而是将您的 dispatch.yaml 编写如下,它应该可以工作
dispatch:
- url: "myprojectid.uc.r.appspot.com/mywebapi-poc/*"
service: mywebapi-poc
- url: "myprojectid.uc.r.appspot.com/mywebui-poc/*"
service: mywebui-poc
dispatch.yaml 路由中省略的任何内容都会自动路由到默认服务
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。