2014-05-18 13 views
8

Loving Go's integrierte Template-Bibliotheken, zur Zeit deklariere ich nur die Vorlage als Const String. Wie geht man normalerweise größere anspruchsvollere Template-Dateien ein? Idealerweise bevorzuge ich sie innerhalb der Binärdatei, um die Bereitstellung zu vereinfachen.Einschließlich Vorlage/HTML-Dateien in Ihrem Go binär

+3

Meinen Sie wie Go-BinData oder go.rice? (http://stackoverflow.com/q/12482311/6309) – VonC

+1

vielleicht? Sie sehen aus wie Dienstprogramme von Drittanbietern. Bedeutet das, dass es keinen standardisierten Weg gibt? (Ich bin ein wenig überrascht, wenn das der Fall ist) – Jacob

Antwort

7

Es gibt keine Standardmethode, dies in Go zu tun.

Wie Kommentare zeigen, gibt es ein paar Bibliotheken, die Ihnen helfen werden, binäre Daten (wie Vorlagen, Bilder) in Go-Quelldateien umzuwandeln, die mit Ihren eigenen Quelldateien in die endgültige Binärdatei kompiliert werden können.

Obwohl dieser Ansatz für viele Projekte funktioniert, werde ich Ihnen empfehlen, es zu überdenken. Die Kosten für eine einfache Verteilung sind, dass Sie die Quelldateien neu generieren müssen, die Assets erstellen, bevor Sie den Hauptquellcode kompilieren, und wenn Sie eine kleinere Änderung an die Vorlagen/javascript/images verteilen möchten, z. B. &. Auf diese Weise müssen Sie den gesamten Server neu kompilieren und neu starten.

Bei den meisten Projekten, die ich an Änderungen im Frontend-Bereich gearbeitet habe, ist die bei weitem häufigste Art von Änderung - was uns veranlasst hat, von dieser Praxis abzuweichen.

+0

Wahr, aber ich hätte lieber nur eine Datei, die ich auf jedem Server bereitstellen/pushen muss, und wenn alles in einer Datei ist, ist es einfacher, zu einer früheren Version zurückzukehren . Es ist ziemlich umständlich, eine Sammlung von Vorlagendateien bearbeiten und schieben/synchronisieren zu müssen. Wie machst du das, vielleicht vulgär? Einfacher, alles in einer Datei zu bündeln, würde ich streiten. – Jacob

2

Hier ist eine Lösung, die die Notwendigkeit und verhindert, dass die Härte beschrieben durch mbazon erfüllt:

https://godoc.org/github.com/jteeuwen/go-bindata

Es binär kompiliert, aber wenn Sie in „Debug“ -Modus sind, dann liest es Ihre statischen Vermögenswerte direkt von der Festplatte.