我正在开发一个GAE应用程序,主要由静态内容组成。我已经配置了以下处理:Google App Engine自定义404页面用于静态文件
- url: /content/(.*\..*)
static_files: static/content/\1
upload: static/content/(.*)
- url: /content/(.+)
static_files: static/content/\1.html
upload: static/content/(.*)\.html
第一处理程序用于投放图像,样式表等;第二个处理普通网址,如/content/zoo/monkeys/george
,并提供相应的HTML文件。
现在,如果URL没有相应的静态文件,GAE正在返回一个空白页面。我想为这些情况设置一个自定义的404页面,但显然这不是直截了当的。
类似问题的答案建议在我的app.yaml
的底部放置一个“全部抓取”处理程序,并使用生成错误页面的RequestHandler
。 然而,/content/(.+)
匹配/content/
下的所有URL,有效与否,这意味着这样的处理程序不会被调用。
我只能想其他两种解决方案:
- 路由所有通过动态处理程序,它写出内容有效的URL或无效者一个错误页面的请求。我不喜欢这样,因为它比让GAE提供静态文件效率低得多。
- 声明一个单独的静态处理程序,它明确地匹配每个静态文件,然后在底部放置一个“全部捕获”处理程序 - 我也不喜欢这样,因为它会导致一长串处理程序。
有没有另外一种方法来为这种情况设置一个合适的404页面?
我想你已经把自己涂在角落里了。 Appengine并没有考虑到这个用例。 –