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
Antwort
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.
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
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.
packr
ist ähnlich go-bindata
, sondern aktiv gepflegt und vielleicht sogar ein wenig schöner zu verwenden:
- 1. Binär-String in Binär- oder Dezimalwert umwandeln
- 2. go - Merge in Go RethinkDB
- 3. Wo binär in SQL
- 4. Binär oder "|" in Ruby
- 5. Binär in 2er Kompliment
- 6. MySQL "binär" vs "Char Zeichensatz binär"
- 7. Bibliotheksabhängigkeiten in Go
- 8. Go Install Binärer Name
- 9. Wie bekomme ich "virtualhost" -Funktionalität in Go?
- 10. Go - keine Buildable Go-Quelldatei in
- 11. Kann ich in binär drucken?
- 12. Datei binär in XNA lesen?
- 13. Binär zu Text in Java
- 14. Konvertieren von Hex in Binär
- 15. Go Sprache auf dem iPhone
- 16. Extrahieren von Teilstrings in Go
- 17. Codezeilen in Ihrem VB-Projekt
- 18. Golan automatisch-einschließlich erweiterbare Anwendung
- 19. Go
- 20. Parse Go Zeitstempel Go mit
- 21. einschließlich Module in Controller
- 22. Einschließlich Verzeichnisse in Clion
- 23. Einschließlich Quelldateien in C
- 24. einschließlich Rechenaufgaben in Edelsteinen
- 25. Einschließlich Bibliotheken in jar
- 26. Einschließlich Datei in PHP?
- 27. Ausgabe in einschließlich AVAudioPlayer
- 28. Einschließlich Wenn in Arrays
- 29. Einschließlich Links in Phantomjs
- 30. Was bedeutet "./..." in "go install./..." in go Sprache?
Meinen Sie wie Go-BinData oder go.rice? (http://stackoverflow.com/q/12482311/6309) – VonC
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