Аз съм нов, и аз се боря да намеря най-добрия начин да се справя с хранилищата на Git.
В този момент използвам официалната структура на директорите на Go, но мисля, че има много клопки.
Това е нещо като
$GOPATH
bin
non-important-stuff
pkg
non-important-stuff
src
github.com
username
reponame
Случаят е, че имам много некодиращи ресурси,като шаблони за настройки по подразбиране, html шаблони и изображения ... но ми се струва малко странно да го поставя в директорията "src / github.com / username / reponame" (защото първата част "src").
Какви са най-често срещаните решения на този проблем?
Друг проблем, пред който се изправям сега, е, че не го правяпознават най-често използваните инструменти за създаване на цял проект с външни ресурси като файлове с настройки по подразбиране или html (командите "go build / install" се грижат само за файловете на изходния код). Как се грижите за относителните пътища, когато изпълнителният файл е "инсталиран"?
Опровержение: Прочетох тази тема: Как да осъществите достъп до ресурсни файлове, след като инструментът "go" е инсталирал изпълнимия файл? , но не видях надеждни решения. Изпълнимият ми файл е сървър и не е опция за вграждане на файловете с настройки и прекомпилиране всеки път, когато искам да преконфигурирам сървъра (а не неговата възможност да предаде всички параметри на настройките чрез параметри за изпълнение, защото файлът с настройките е много комплекс).
Отговори:
1 за отговор № 1Предполагам, че става дума за уеб програмиране.
Както правилно отбелязахте, структурата на директорията е предназначена за кода, а инструментът Go Tool се грижи само за изграждането на двоични файлове и за поставянето им на конвенционално място (pkg
или bin
).
Това, което искате, е пълна процедура за внедряване на бинарни файлове с ресурси.
Трябва или да включите собствената си процедура за внедряване, или да използвате съществуваща рамка.
Скица на домашна процедура:
- поставете всички ресурси под определена директория във вашия проект (напр.
resources/
) - употреба
git archive resources/
за да обедините файловете - копирайте файловете до изпълнимия файл
- изберете начин за коригиране на локалните параметри (db сървър, db име и др.)
- изберете начин да направите вашия сървър да презареди ресурсите (рестартирайте сървъра си / систематично отново прочетете ресурсите / проверете датите на промяна / ...)
Ако търсите съществуваща уеб рамка:
Revel е една от възможностите, която се грижи за многобройни точки, между които гореща recompilation по време на развитие, и a процедура за разгръщане.