Maison  >  Article  >  développement back-end  >  Moteur de modèle Golang Fibre HTML : rendu : le modèle n'existe pas

Moteur de modèle Golang Fibre HTML : rendu : le modèle n'existe pas

WBOY
WBOYavant
2024-02-11 12:30:09739parcourir

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

Dans le développement Golang, le moteur de modèles est un élément très important, il peut aider les développeurs à rendre les pages HTML plus facilement. En tant que framework Web léger de Golang, Fiber fournit également son propre moteur de modèles. Lors de l'utilisation de Fiber, vous rencontrez parfois le problème « Le modèle n'existe pas ». Ce problème peut être dû à des paramètres de chemin incorrects ou au fichier n'existe pas. Dans cet article, l'éditeur PHP Youzi analysera en détail la cause de ce problème et proposera des solutions pour vous aider à mieux utiliser le moteur de modèles Fibre pour le rendu HTML.

Contenu de la question

Sur mon serveur ubuntu 22.10 digitalocean, j'essaie d'utiliser golang avec la fibre et le moteur de template html. J'adore jusqu'à présent.

Tout fonctionne bien, y compris la connexion MySQL et l'envoi d'e-mails. Sauf pour une chose.

Je reçois toujours l'erreur Rendu : l'index du modèle n'existe pas .

Système de fichiers :

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

Mon code main.go :

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"))
}

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

Lorsque je l'exécute localement sur mon Mac, tout fonctionne correctement et les modèles s'affichent comme ils le devraient.

Mais sur le serveur Ubuntu, tout fonctionne bien sauf les modèles, avec l'erreur donnée :

Rendu : l'index du modèle n'existe pas

J'ai essayé de modifier la propriété et les autorisations dans Ubuntu : aucun résultat. Cependant, c'est un peu un angle mort pour moi, donc cela peut encore poser un problème...

J'ai essayé de modifier les chemins de vue (./views, /views, vues.etc) : aucun résultat.

J'ai essayé return c.render("index.html", fiber.map{ : aucun résultat.

Qu'est-ce que j'ai raté ?

Solution

Recherchez l'erreur, elle apparaîtra au-dessus de la zone d'information sur la fibre. Pour moi ça se passe comme ça : 2023/03/12 15:40:58 [警告]:无法加载视图:模板:apply:9:函数“t”未定义. Si votre modèle est compilé, ils seront trouvés à l'aide de chemins relatifs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer