Edited at

【Go言語】GinでTemplateパッケージにCSS等のファイルを適用させる


背景

Webの画面をGoで作りたく、ただ、フルスタックのBeegoを入れるほどリッチにはしたくないなと、ってことでGinをいれて作っていた。

※紛らわしいことにコンパイルのauto-reloadをやってくれる同名のGINというパッケージもある

ここでは、CSS等をhtmlに適用させる際に学んだことをつらつら書いていきたいと思います。


CSSを適用させる

main.goがあったとする。というより、こう書けば静的ファイルをインポートできる。


main.go

package main

import "github.com/gin-gonic/gin"

func main() {
r := gin.Default()
// 静的ファイルの
// router.Static("URL", "静的ファイル格納場所")
router.Static("/assets", "./assets")
router.LoadHTMLGlob("templates/*/**")
HTML(http.StatusOK, "index.tmpl", gin.H{
"title": "XXX",
})
r.Run()
}


ちなみにフォルダ構成はこんな感じ

root/

 ├ main.go
 ├ templates/main/index.tmpl
 | // ここに静的ファイルを置く
 └ assets/
├ images/xxx.png
└ css/xxx.css

んで、テンプレート


(index.tmpl).html

//↑.htmlって書かないとQiitaのスタイルが適用されないので...

<html>
<head>
<title>{{.title}} </title>
<style type="text/css" media="screen">
@import url("/assets/css/xxx.css");
</style>
</head>
<body>
<h1>TEST</h1>
</body>
</html>