Heim  >  Artikel  >  Backend-Entwicklung  >  Golang Fibre Template Engine HTML: Rendering: Vorlage existiert nicht

Golang Fibre Template Engine HTML: Rendering: Vorlage existiert nicht

WBOY
WBOYnach vorne
2024-02-11 12:30:09700Durchsuche

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

Bei der Golang-Entwicklung ist die Template-Engine ein sehr wichtiger Bestandteil, sie kann Entwicklern helfen, HTML-Seiten komfortabler zu rendern. Als leichtgewichtiges Web-Framework von Golang bietet Fiber auch eine eigene Template-Engine. Bei der Verwendung von Fiber tritt manchmal das Problem „Vorlage existiert nicht“ auf. Dieses Problem kann durch falsche Pfadeinstellungen verursacht werden oder die Datei existiert nicht. In diesem Artikel analysiert der PHP-Editor Youzi die Ursache dieses Problems im Detail und stellt Lösungen bereit, die Ihnen helfen, die Fiber-Template-Engine besser für das HTML-Rendering zu nutzen.

Frageninhalt

Auf meinem Ubuntu 22.10 Digitalocean-Server versuche ich, Golang mit Fiber und der HTML-Template-Engine zu verwenden. Ich liebe es bisher.

Alles funktioniert einwandfrei, einschließlich der MySQL-Verbindung und dem Versenden von E-Mails. Außer eine Sache.

Ich erhalte ständig die Fehlermeldung Rendering: Vorlagenindex existiert nicht .

Dateisystem:

├── /gogo
   ├── main
   ├── main.go
   ├── go.mod
   ├── go.sum
   ├── /views
        └── index.html
   └── /public
        └── plaatje.png

Mein main.go-Code:

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-Datei:

<!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>

Wenn ich es lokal auf meinem Mac ausführe, funktioniert alles einwandfrei und die Vorlagen werden so gerendert, wie sie sollten.

Aber auf dem Ubuntu-Server funktioniert alles bis auf die Vorlagen einwandfrei, mit der folgenden Fehlermeldung:

Rendering: Vorlagenindex existiert nicht

Ich habe versucht, den Besitz und die Berechtigungen in Ubuntu zu ändern: keine Ergebnisse. Allerdings ist das für mich ein bisschen ein blinder Fleck, daher könnte das immer noch ein Problem sein...

Ich habe versucht, die Ansichtspfade (./views, /views, views.etc) zu ändern: Kein Ergebnis.

Ich habe es versucht return c.render("index.html", fiber.map{: kein Ergebnis.

Was habe ich verpasst?

Lösung

Suchen Sie nach dem Fehler. Er wird über dem Faserinformationsfeld angezeigt. Bei mir geht das so: 2023/03/12 15:40:58 [警告]:无法加载视图:模板:apply:9:函数“t”未定义. Wenn Ihre Vorlage kompiliert wird, werden sie mithilfe relativer Pfade gefunden.

Das obige ist der detaillierte Inhalt vonGolang Fibre Template Engine HTML: Rendering: Vorlage existiert nicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen