在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 文件:
{{.Title}} {{.Title}}
{{.Plat}}
登錄后復制
當我在 mac 上本地運行它時,一切正常,并且模板按其應有的方式呈現。
但是在 ubuntu 服務器上,除了模板之外,一切正常,并出現給定的錯誤:
渲染:模板索引不存在
我嘗試在 ubuntu 中更改所有權和權限:沒有結果。然而,這對我來說有點盲點,所以這可能仍然是問題……
我嘗試修改視圖路徑(./views、/views、views.etc):沒有結果。
我嘗試過 return c.render("index.html", fiber.map{
: 沒有結果。
我錯過了什么?
解決方法
查找錯誤,它會出現在光纖信息框上方。對我來說是這樣的:2023/03/12 15:40:58 [警告]:無法加載視圖:模板:apply:9:函數“t”未定義
。如果您的模板編譯,將使用相對路徑找到它們。