如何配置Google App Engine yaml文件以处理404错误

时间:2018-10-17 14:08:18

标签: angular google-app-engine google-cloud-platform angular2-routing

enter image description here

需要将所有404链接重定向到www文件夹中的index.html

这是我的app.yaml

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  static_files: www/index.html
  upload: www/index.html

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

这是一个静态的angular 2应用程序,我需要将所有未找到的404错误定向到index.html。 有(www)文件夹,并且所有文件都在其中,其中包括index.html。

1 个答案:

答案 0 :(得分:2)

因此,将其添加为最后一条规则,将在其他所有规则均失败的情况下使其投放index.html

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

但是我认为您想要的是实际上执行重定向。否则,您的基本网址仍将是一些虚假网址。您需要在服务器代码中设置基本的请求处理程序才能执行此操作(在您的情况下,服务器运行时为python27)。

因此将此规则添加到app.yaml

- url: /.*
  script: main.app

然后添加一个名为main.py的文件,其中包含以下内容:

import webapp2
app = webapp2.WSGIApplication()

class RedirectToHome(webapp2.RequestHandler):
    def get(self, path):
        self.redirect('/www/index.html')


routes = [
    RedirectRoute('/<path:.*>', RedirectToHome),
]

for r in routes:
    app.router.add(r)