Beego生产环境返回状态码的bug
来源:互联网 发布:sql二进制数据类型 编辑:程序博客网 时间:2024/05/22 06:34
项目用的是Beego的1.4.2。但是最近发现cdn会把项目中的40x或者50x的页面缓存住。
研究了下Beego的源码,然后经过测试后发现,在生产环境下,当请求的页面出错时,返回的页面的状态码40x或者50x会被统一改为200。
这个是因为开发者谢大将写入response的状态码的那行给注释了。
要是用Beego的同僚注意了,这个地方得自己处理下。
如下处理即可:
在main.go中:
package mainimport ("github.com/astaxie/beego""zhe800h5wap/controllers"_ "zhe800h5wap/routers")func main() {beego.Errorhandler("400", controllers.PageNotFound)beego.Errorhandler("401", controllers.PageNotFound)beego.Errorhandler("403", controllers.PageNotFound)beego.Errorhandler("404", controllers.PageNotFound)beego.Errorhandler("405", controllers.PageNotFound)beego.Errorhandler("500", controllers.ServerError)beego.Errorhandler("502", controllers.ServerError)beego.Errorhandler("503", controllers.ServerError)beego.Errorhandler("504", controllers.ServerError)beego.Run()}
其中,beego.Errorhandler("400", controllers.PageNotFound) 会处理页面状态码是400的,其他的依次类推。
在controllers包中:
在init.go中新增:
func PageNotFound(rw http.ResponseWriter, r *http.Request) {rw.WriteHeader(http.StatusNotFound)}func ServerError(rw http.ResponseWriter, r *http.Request) {rw.WriteHeader(http.StatusInternalServerError)}其中,对应的controllers的方法会将40x和50x的状态码统一处理为404和500。
这样处理后,cdn就不会缓存这些状态码不是200的页面了。
fang,2015-02-12
0 0
- Beego生产环境返回状态码的bug
- 生产环境常见的HTTP状态码列表
- 生产环境常见的HTTP状态码列表
- 生产环境常见的HTTP状态码列表
- beego框架的环境搭建
- beego框架的环境搭建
- 一次生产环境发生的严重bug处理
- 生产环境常见的HTTP状态码列表(老男孩整理)
- 悲剧!!生产上蹦出的bug
- 生产订单的状态变化
- (beego)搭建GO语言 WEB框架 BEEGO 的WINDOWS环境过程
- beego开发环境
- beego 开发环境
- beego环境搭建
- Bugzilla的bug状态
- bug生命周期的状态
- Bug的状态
- 生产环境出现Bug,应该如何部署Hotfix?
- 文件监控
- netbeans设置英文
- Java基础 - 常见的权限修饰符
- Android的NDK学习1
- 【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
- Beego生产环境返回状态码的bug
- 详解spring 每个jar的作用
- thinkphp中post查询传参分页处理
- spring学习第一章
- php GD库做水印功能,合并图片
- Google Guava官方教程(中文版)
- Quartz Demo
- 如何使用Java、Servlet创建二维码
- Kindle电子书资源网站汇总