Ich entwickle eine Bibliothek, die eine Ressource-Datei enthält, insbesondere eine E-Mail-Vorlage. Die Datei befindet sich unter <project_root>/templates/email.html
.Verteilen von Ressourcen mit Golang
Ich habe eine harte Zeit Referenzierung dieser Datei aus den .go
Quellen, da es schwierig ist, einen relativen Pfad aufzulösen. Bis jetzt sind die Optionen, die ich gefunden sind:
Verwendung
$GOPATH
: Das kommt mit dem Problem, dass einige Abhängigkeit managemente Tools$GOPATH
neu definieren können und brecheneine variable benutzerdefinierte env benutzen funktioniert, aber es zwingt den Benutzer, der lib, um die Variable hinzuzufügen.
Inline die Vorlage auf einer Zeichenfolge: es ist hässlich.
Hat jemand eine bessere Alternative? Ich würde lieber nicht 3rd-Party-Bibliotheken nur dafür verwenden, aber wenn Sie wissen, dass man frei es darauf hinweisen kann, kann ich die Quellen lesen und sehen, wie sie es tun.
Dank
Betrachten Sie die E-Mail-Template-Datei direkt in Ihr binäre Einbetten: siehe [github.com/jteeuwen/go-bindata](https://github.com/jteeuwen/go-bindata) – Mark
Inlining Ressourcen ist IMHO Der beste Weg, wenn Sie eine Go-Bibliothek entwickeln. Auf diese Weise sind Ressourcen vollständig transparent. Das Einbetten der Vorlage in die Binärdatei wirkt sich direkt auf die Benutzer aus, die Ihre Bibliothek verwenden und sie kompilieren müssen. – jnmoal