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