在Golang开发中,模板引擎是非常重要的一部分,它能够帮助开发者更方便地渲染HTML页面。而Fiber作为Golang的轻量级Web框架,也提供了自己的模板引擎。在使用Fiber的过程中,有时候会遇到"模板不存在"的问题,这个问题可能是由于路径设置不正确或者文件确实不存在所导致。在本文中,php小编柚子将为大家详细解析这个问题的原因,并给出解决方案,帮助大家更好地使用Fiber模板引擎进行HTML渲染。
在我的 ubuntu 22.10 digitalocean 服务器上,我正在尝试使用 golang 和 fiber 以及 html 模板引擎。到目前为止很喜欢它。
一切正常,包括 mysql 连接和发送电子邮件。除了一件事。
我不断收到错误渲染:模板索引不存在。
文件系统:
├── /gogo ├── main ├── main.go ├── go.mod ├── go.sum ├── /views └── index.html └── /public └── plaatje.png
我的main.go的代码:
package main import ( "fmt" "log" fiber "github.com/gofiber/fiber/v2" "github.com/gofiber/template/html" ) func main() { // initialize standard go html template engine template_engine := html.new( "./views", ".html", ) // start fiber app := fiber.new(fiber.config{ views: template_engine, }) // add static folder app.static( "/static", // mount address "./public", // path to the file folder ) // endpoint app.get("/", func(c *fiber.ctx) error { // render index template return c.render("index", fiber.map{ "title": "it works", "plat": "almost", }) }) log.fatal(app.listen(":9990")) }
index.html 文件:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Unicode"> <title>{{.Title}}</title> </head> <body> <h1>{{.Title}}</h1> <p>{{.Plat}}</p> <p><img src="./static/plaatje.png"></p> </body> </html>
当我在 mac 上本地运行它时,一切正常,并且模板按其应有的方式呈现。
但是在 ubuntu 服务器上,除了模板之外,一切正常,并出现给定的错误:
渲染:模板索引不存在
我尝试在 ubuntu 中更改所有权和权限:没有结果。然而,这对我来说有点盲点,所以这可能仍然是问题......
我尝试修改视图路径(./views、/views、views.etc):没有结果。
我尝试过 return c.render("index.html", fiber.map{
: 没有结果。
我错过了什么?
查找错误,它会出现在光纤信息框上方。对我来说是这样的:2023/03/12 15:40:58 [警告]:无法加载视图:模板:apply:9:函数“t”未定义
。如果您的模板编译,将使用相对路径找到它们。
以上是Golang Fiber 模板引擎 HTML:渲染:模板不存在的詳細內容。更多資訊請關注PHP中文網其他相關文章!