Dalam pembangunan Golang, enjin templat adalah bahagian yang sangat penting, ia boleh membantu pembangun memaparkan halaman HTML dengan lebih mudah. Sebagai rangka kerja web ringan Golang, Fiber juga menyediakan enjin templatnya sendiri. Dalam proses menggunakan Fiber, anda kadangkala menghadapi masalah "template tidak wujud" Masalah ini mungkin disebabkan oleh tetapan laluan yang salah atau fail tidak wujud. Dalam artikel ini, editor PHP Youzi akan menganalisis punca masalah ini secara terperinci dan menyediakan penyelesaian untuk membantu anda menggunakan enjin templat Fiber dengan lebih baik untuk pemaparan HTML.
Pada pelayan digitalocean ubuntu 22.10 saya, saya cuba menggunakan golang dengan gentian dan enjin templat html. Suka setakat ini.
Semuanya berfungsi dengan baik termasuk sambungan mysql dan menghantar e-mel. Kecuali satu perkara.
Saya terus mendapat ralat Rendering: indeks templat tidak wujud .
Sistem fail:
├── /gogo ├── main ├── main.go ├── go.mod ├── go.sum ├── /views └── index.html └── /public └── plaatje.png
Kod main.go saya:
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")) }
fail 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>
Apabila saya menjalankannya secara setempat pada mac saya, semuanya berfungsi dengan baik dan templat dipaparkan seperti yang sepatutnya.
Tetapi pada pelayan ubuntu, semuanya berfungsi dengan baik kecuali untuk templat, dengan ralat yang diberikan:
Rendering: indeks templat tidak wujud
Saya cuba menukar pemilikan dan kebenaran dalam ubuntu: tiada hasil. Namun, ini agak buta bagi saya, jadi ini mungkin masih menjadi isu...
Saya cuba mengubah suai laluan pandangan (./views, /views, views.etc): tiada hasil.
Saya cuba return c.render("index.html", fiber.map{
: tiada hasil.
Apa yang saya terlepas?
Cari ralat, ia akan muncul di atas kotak maklumat gentian. Bagi saya ianya begini: 2023/03/12 15:40:58 [警告]:无法加载视图:模板:apply:9:函数“t”未定义
. Jika templat anda disusun, ia akan didapati menggunakan laluan relatif.
Atas ialah kandungan terperinci HTML Enjin Templat Gentian Golang: Rendering: Templat tidak wujud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!