You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Beego框架自定义404页面显示HTML源码,原因是什么?

解决Beego自定义404页面显示HTML源码的问题

嘿,我来帮你搞定这个问题~你遇到的404页面直接显示HTML源码的核心原因很明确:没有给响应设置正确的Content-Type头部,浏览器无法识别这是HTML内容,就直接把源码输出了。

下面给你两种解决方案:

方案一:手动设置Content-Type头部

在执行模板渲染前,给响应头添加正确的类型声明,告诉浏览器这是HTML文件:

func page_not_found(rw http.ResponseWriter, r *http.Request){
    t,_:= template.ParseFiles(beego.BConfig.WebConfig.ViewsPath +"/404.html")
    data :=make(map[string]interface{})
    data["content"] = "page not found"
    // 新增这行,设置Content-Type
    rw.Header().Set("Content-Type", "text/html; charset=utf-8")
    t.Execute(rw, data)
}

方案二:使用Beego内置的模板渲染方法

既然用了Beego框架,更推荐用它自带的渲染工具,它会自动帮你处理Content-Type等细节,也更贴合框架的使用逻辑:

func page_not_found(rw http.ResponseWriter, r *http.Request) {
    // 给模板传值
    beego.Data["content"] = "page not found"
    // 用Beego的RenderTemplate渲染页面
    beego.RenderTemplate(rw, "404.html", beego.Data)
}

另外可以顺便检查下beego.BConfig.WebConfig.ViewsPath的路径是否正确,确保404.html确实在指定的视图目录下——不过你能看到源码说明文件是能被读取到的,所以主要问题还是Content-Type的设置。

内容的提问来源于stack exchange,提问作者kuzicala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:57:11