如何在页面刷新时使Angular 2路由与App Engine一起使用?

时间:2016-09-03 22:55:13

标签: google-app-engine angular

我正在尝试在App Engine标准环境上运行Angular 2应用程序。在应用程序中导航时,它适用于以下app.yaml配置:

handlers:
- url: /api/.*
  script: _go_app

- url: (.*)/
  static_files: static\1/index.html
  upload: static

- url: (.*)
  static_files: static\1
  upload: static

我可以点击从//clients/clients/234234的链接,它可以正常使用。

但是,如果我刷新非基本路径中的浏览器,例如http://myapp.appspot.com/clients/234234然后我收到404错误。我想我需要从我认为index.html(.*)/所做的所有路径中提供我的(.*)

如何设置我的处理程序/应用程序,以便我可以使用HTML5路由而不是让这种情况发生?

1 个答案:

答案 0 :(得分:3)

我有一堆需要提供的静态文件,所以我先添加了它们的映射。我(最重要的是)也改变了index.html的服务方式:

handlers:
- url: /api/.*
  script: _go_app

- url: /(.*\.svg)
  static_files: static/\1
  upload: static/(.*\.svg)

- url: /(.*\.js)
  static_files: static/\1
  upload: static/(.*\.js)

- url: /(.*\.map)
  mime_type: application/octet-stream
  static_files: static/\1
  upload: static/(.*\.map)

- url: (.*)/
  static_files: static/index.html
  upload: static

- url: (.*)
  static_files: static/index.html
  upload: static