【问题标题】:appengine custom 404 page for static website静态网站的 appengine 自定义 404 页面
【发布时间】:2013-07-25 07:43:24
【问题描述】:

我正在尝试在 Google AppEngine 上托管一个简单的静态网站,但在设置自定义 404 页面时遇到了问题。

我的app.yaml 为所有请求提供静态文件(来自www 子目录):

application: id
version: v
runtime: python27
api_version: 1
default_expiration: "1d"
threadsafe: yes

handlers:
- url: (.*)/
  static_files: www\1/index.html
  upload: www/index.html
- url: /
  static_dir: www

error_handlers:
- file: 404.html

但在尝试访问不存在的文件时,我没有看到 404.html,而是默认的 GAE 错误消息。

日志显示:

Static file referenced by handler not found: www/does-not-exists/index.html

Static file referenced by handler not found: www/does-not-exists.html

我做错了什么?

【问题讨论】:

    标签: google-app-engine error-handling http-status-code-404


    【解决方案1】:

    这行不通。您的静态处理程序将匹配大多数事情,并且您不能为 404 执行 error_handler。

    【讨论】:

    • 感谢您指出这是一条死胡同。关于如何在 GAE 上为静态网站获取自定义 404 页面的任何建议?
    • 添加一个动态处理程序(代码)作为 app.yaml 中定义的最后一个处理程序,如果它落到那里,那么您可以建立一个客户 404 页面。但是您的主要静态处理程序正则表达式需要更具体,否则您将继续收到当前错误,因为正则表达式匹配所有内容。
    【解决方案2】:

    我也遇到了这个错误,我基本上是通过使用基本异常处理程序(我使用的是 spring,所以这很容易)捕获所有异常(尚未捕获的)来重定向到错误页面。

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 1970-01-01
      • 2016-09-02
      • 2020-06-02
      • 2019-01-29
      • 2013-03-01
      • 2015-04-17
      • 2017-07-20
      • 2013-02-13
      相关资源
      最近更新 更多