Rumah  >  Artikel  >  pembangunan bahagian belakang  >  HTML Enjin Templat Gentian Golang: Rendering: Templat tidak wujud

HTML Enjin Templat Gentian Golang: Rendering: Templat tidak wujud

WBOY
WBOYke hadapan
2024-02-11 12:30:09739semak imbas

Golang Fiber 模板引擎 HTML:渲染:模板不存在

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.

Kandungan soalan

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?

Penyelesaian

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam