Lorcaでアプリケーションを作る場合ある程度規模が大きくなってくると、静的なコンテンツをGolangのコードと分離して構築すると思います。
このときのビルドの手順をメモしておきます。
1. 静的なコンテンツを配置
公式のexampleを参考にしています。
ここでは、wwwディレクトリ以下に静的なコンテンツを配置しています。
2. gen.goを準備
gen.goを配置します。
静的なコンテンツのパスをlorca.Embedn第三引数に指定します。
lorca.Embed("main", "assets.go", "www")
こんな感じになります。
.
├── gen.go
└── www
├── favicon.png
└── index.html
3. gen.goを実行
以下のコマンドを実行します。
go run gen.go
4. assets.goが生成される
コマンドでassets.goが生成されます。
assets.goでは指定したパスに存在するコンテンツをバイナリに変換したものがコード内に直接定義されています。FSにてパスに対するコンテンツを返却するファイルシステムが定義されています。
ここで定義されたFSをこちらのようにFileServerに渡すことで、静的コンテンツをGoの世界だけで利用することができます。
5. ビルドする
build-linux.shなどのビルドスクリプトを実行すると、各プラットフォームに対応したバイナリがビルドできます。