python – 用于静态文件的Google App Engine自定义404页面
我正在开发一个GAE应用程序,它主要由静态内容组成.我已经配置了以下处理程序:
- 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这样的普通URL,并提供相应的HTML文件. 现在,如果没有相应的URL静态文件,GAE将返回一个空页面.我想为这些案例设置一个自定义的404页面,但显然这并不简单. 对类似问题的回答建议在app.yaml的底部放置一个“catch-all”处理程序,并使用生成错误页面的RequestHandler. 我只能想到另外两个解决方案: >通过动态处理程序路由所有请求,动态处理程序为有效URL写入内容,或为无效URL写入错误页面.我不喜欢这个,因为它比让GAE提供静态文件效率低得多. 还有另一种方法可以为这种情况设置一个合适的404页面吗? 解决方法
回答那些会发现它有用的旧线程.
>添加require_matching_file:true作为处理程序的最后一个属性. 如果没有相应的文件,将调用瀑布中的下一个处理程序,而不是生成默认的404页面. 例: - url: /content/(.*..*) static_files: static/content/1 upload: static/content/(.*) require_matching_file: true - url: /content/(.+) static_files: static/content/1.html upload: static/content/(.*).html require_matching_file: true - url: /.* script: auto 这样GAE将通过前两个处理程序为所有现有的静态资产提供服务.将仅针对不存在的URL调用动态处理程序.你需要为此编写代码…… 这里有一个很大的免责声明:require_matching_file没有记录.但事实证明,当您上传时,GAE会自动将该字段添加到您的app.yaml中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |