Maison > développement back-end > Golang > 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
Libérer: 2024-02-11 12:30:09
avant
751 Les gens l'ont consulté

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
Copier après la connexion

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"))
}
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal