You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

App Engine自定义域名路由(Python/Flask)404问题排查

问题分析与解决方法

核心问题1:dispatch.yaml的URL匹配模式不匹配目标路径

你的dispatch.yaml中*/service-1/*的规则仅匹配**包含/service-1/(带结尾斜杠)**的路径(比如/service-1/abc),但你访问的/service-1(无结尾斜杠)不会被该规则匹配,导致请求仍走默认服务,而默认服务没有对应路由,返回404。

同时,默认规则*/.*仅匹配路径中包含.的请求(比如/index.html),根路径/其实是因为没有匹配到任何dispatch规则才默认路由到默认服务,这个规则本身是无效的。

核心问题2:可能未部署dispatch.yaml文件

很多人容易忽略:dispatch.yaml需要单独部署,而非随服务一起部署,若只部署了服务而未部署dispatch配置,规则根本不会生效。

修正步骤

1. 修正dispatch.yaml配置

更新后的配置如下,调整URL匹配规则以覆盖所有相关路径,并修正默认规则:

dispatch:
  # Service 1:匹配/service-1及所有子路径
- url: "*/service-1*"
  service: service1

  # Service 2:匹配/service-2及所有子路径
- url: "*/service-2*"
  service: service2

  # Default service:匹配所有未被上面规则覆盖的请求
- url: "/*"
  service: default

2. 部署dispatch.yaml

在终端执行以下命令部署配置:

gcloud app deploy dispatch.yaml

3. 验证service1的部署状态

确认service1已成功部署:

gcloud app services list

确保列表中存在service1,且状态为正常。

4. 验证Flask路由(可选)

确认service1的Flask应用中存在对应路由(比如@app.route('/')或@app.route('/service-1')),因为即使dispatch路由过去,如果Flask本身没有对应路由,也会返回404。

内容的提问来源于stack exchange,提问作者Will Brandow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:22:50