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

HTML Enjin Templat Gentian Golang: Rendering: Templat tidak wujud

WBOY
Lepaskan: 2024-02-11 12:30:09
ke hadapan
767 orang telah melayarinya

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
Salin selepas log masuk

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"))
}
Salin selepas log masuk

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>
Salin selepas log masuk

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan