Heim >Backend-Entwicklung >Golang >Wie implementiert man hierarchische Vorlagen mit automatischem Neuladen in Go App Engine?

Wie implementiert man hierarchische Vorlagen mit automatischem Neuladen in Go App Engine?

Linda Hamilton
Linda HamiltonOriginal
2024-12-03 07:02:13225Durchsuche

How to Implement Hierarchical Templates with Automatic Reloading in Go App Engine?

Go AppEngine: Hierarchische Vorlagen mit automatischem Neuladen

Frage:

Wie kann ich strukturieren Vorlagen in einer Go AppEngine-Anwendung, um Folgendes zu erreichen:

  • Hierarchisch Organisation
  • Kompatibilität mit HTML-Tools
  • Automatisches Neuladen von Vorlagen auf dem Entwicklungsserver

Potenzielle Herausforderungen:

  • Template.ParseGlob() führt keine Rekursion aus
  • Hochladen Von Rohtextvorlagen wird aus Leistungsgründen abgeraten

Lösung:

Organisieren Sie Ihr Go AppEngine-Projekt mit einer modularen Struktur, bei der jedes Paket ein URL-Präfix besitzt und enthält eigene Vorlagen. Mit diesem Ansatz können Sie eine konsistente Basisvorlage beibehalten und diese innerhalb jedes Pakets erweitern.

Beispielprojektstruktur:

|-- app.yaml
|-- app
|   +-- http.go
|-- templates
|   +-- base.html
+-- github.com
    +-- storeski
        +-- appengine
            +-- products
            |   +-- http.go
            |   +-- templates
            |       |-- list.html
            |       +-- detail.html
            +-- account
                |-- http.go
                +-- templates
                    |-- overview.html
                    |-- notifications.html 

In der http.go-Datei jedes Pakets Registrieren Sie Handler für die URLs, die es besitzt. Beispielsweise würde das Produktpaket URLs verarbeiten, die mit /products beginnen.

Speichern Sie in jedem Paket Vorlagen in einem „templates“-Unterverzeichnis und erstellen Sie eine Basisvorlage (z. B. templates/base.html) für andere Vorlagen kann erweitert werden.

Um das automatische Neuladen von Vorlagen auf dem Entwicklungsserver zu ermöglichen, implementieren Sie eine benutzerdefinierte Funktion, um auf Änderungen in den Vorlagen zu achten Verzeichnis:

func watchTemplates() {
  ticker := time.NewTicker(1 * time.Second)
  for range ticker.C {
    if err := parseTemplates(); err != nil {
      log.Printf("Error parsing templates: %v", err)
    }
  }
}

Rufen Sie in Ihrem Hauptpaket watchTemplates() auf, um regelmäßig nach Vorlagenänderungen zu suchen und diese neu zu laden. Dadurch wird sichergestellt, dass Aktualisierungen von Vorlagen automatisch in Ihrer Anwendung berücksichtigt werden.

Das obige ist der detaillierte Inhalt vonWie implementiert man hierarchische Vorlagen mit automatischem Neuladen in Go App Engine?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn