Beego 的几个小 Tips

Beego 框架不错,个人比较喜欢,关键是还有一些开发工具很实用,封装了很多实现,不需要自己做很多工作,在不考虑效率的前提下,都是可以接受的范畴。

自定义错误页面

Beego 默认自己带了一些错误页面,在 error.go 文件中进行了定义。以 404 为例:

1
2
3
4
5
6
7
8
9
10
// show 404 notfound error.
func NotFound(rw http.ResponseWriter, r *http.Request) {t, _ := template.New("beegoerrortemp").Parse(errtpl)
data := make(map[string]interface{})
data["Title"] = "Page Not Found"
data["Content"] = template.HTML("<br>The page you have requested has flown the coop."+"<br>Perhaps you are here because:"+"<br><br><ul>" +
"<br>The page has moved"+"<br>The page no longer exists"+"<br>You were looking for your puppy and got lost"+"<br>You like 404 pages"+"</ul>")
data["BeegoVersion"] = VERSION
//rw.WriteHeader(http.StatusNotFound)
t.Execute(rw, data)
}

其实自己做一个修改也很容易:

1
2
3
4
5
6
7
8
9
func page_not_found(rw http.ResponseWriter, r *http.Request){t,_:= template.New("404.html").ParseFiles(beego.ViewsPath+"/404.html")
data :=make(map[string]interface{})
data["content"] = "page not found"
t.Execute(rw, data)
}

func main() {beego.Errorhandler("404",page_not_found)
beego.Router("/", &controllers.MainController{})
beego.Run()}

Server 字段的修改

HTTP 返回头中的 Server 总是显示的是 BeegoServer,太不专业了,定义在 config.go 文件中:

BeegoServerName = "beegoServer"

我最初是 fork 了一个 repo 改,后来发现,只需要在 app.conf 文件中定义一下就可以了:

BeegoServerName = ACGSOSERVER

这样 Server 这个字段就更改掉了,其他的属性也可以用这种方式定义掉。