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

Angular项目部署谷歌云后刷新页面出现404错误 仅GCP环境触发

问题根因

这是单页应用(SPA)部署在静态服务器上的典型问题:Angular 采用客户端路由方案,所有路由跳转逻辑都在首次加载的 index.html 内运行。手动刷新 /results 页面时,浏览器会直接向 GCP App Engine 发起 /results 路径的资源请求,你当前的 app.yaml 仅配置了根路径的规则,App Engine 找不到对应路径的静态资源就会返回 404。
本地环境、AWS 平台运行正常是因为这两个环境的 Web 服务默认开启了 SPA 路由回退配置,所有未匹配到静态资源的请求都会返回 index.html,交给前端处理路由逻辑。

解决方案

修改 app.yaml 的 handlers 规则,新增全路径回退到 index.html 的配置即可,修改后的完整配置如下:

runtime: python27
api_version: 1
threadsafe: true

handlers:
# 匹配所有静态资源请求,直接返回对应静态文件
- url: /(.*\.(js|css|png|jpg|gif|ico|svg|json|txt|woff|woff2|ttf|eot))$
  static_files: skote/\1
  upload: skote/.*\.(js|css|png|jpg|gif|ico|svg|json|txt|woff|woff2|ttf|eot)$

# 根路径请求返回首页
- url: /$
  static_files: skote/index.html
  upload: skote/index.html

# 所有未匹配到静态资源的请求,全部返回index.html,交给Angular处理前端路由
- url: /.*
  static_files: skote/index.html
  upload: skote/index.html

配置生效后,刷新 /results 页面时 App Engine 会返回 index.html,Angular 加载完成后会自动匹配前端路由渲染结果页,不会再出现404问题。

额外注意
  • 如果项目有其他后缀的静态资源需要访问,将后缀补充到第一条规则的后缀列表中即可
  • Python 2.7 runtime 已经停止官方维护,有条件的话建议升级到 Python 3 版本的 runtime,路由配置逻辑完全一致,只需修改 runtime 字段即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:57:02