Go Fiber中HTML模板range块内使用HTML标签报错求助
解决Go Fiber模板range块中添加HTML标签报错的问题
错误原因
未在Fiber应用中配置模板引擎的视图目录,导致模板文件无法被正确解析,进而将HTML标签错误识别为model.Post结构体的字段,触发错误:
failed to execute: template: :13:5: executing "" at <. <p>>: can't evaluate field <p> in type model.Post
解决方案
- 安装Fiber HTML模板引擎
执行以下命令安装官方HTML模板引擎包:
go get github.com/gofiber/template/html/v2
- 配置Fiber应用的模板引擎
修改main.go,在初始化Fiber实例时指定视图文件目录和模板引擎:
package main import ( "github.com/gofiber/fiber/v2" "github.com/gofiber/template/html/v2" ) func main() { // 初始化HTML模板引擎,指定视图目录为./views,文件后缀为.html engine := html.New("./views", ".html") // 初始化Fiber应用并绑定模板引擎 app := fiber.New(fiber.Config{ Views: engine, }) database.Connect() app.Get("/posts", controller.GetPost) app.Listen(":3000") }
- 验证模板语法
你的views/feed.html模板语法是正确的,无需修改:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> {{range .Posts}} <p>{{.Content}}</p> {{end}} </body> </html>
完成配置后重启应用,访问/posts即可正常渲染包含HTML标签的列表内容。
内容的提问来源于stack exchange,提问作者Ngoc Le
相关产品推荐
相关产品推荐

