初めに
golangでカレンダーを作りたくあくせくしています。
現状、日付の取得までできたので、
どうやってweb上で動かすか考えました。
htmlとかどこで書くの?ってなって苦戦。
(日付の取得方法は以下にまとめてあります)
https://qiita.com/onizawajunpei4/items/375fa8fc53a46cf5c2af
どうやってやったか
こちらの記事を発見し参考にさせていただきました。
今回はやったことの振り返りのまとめなので詳細はリンク先でご確認ください。
https://qiita.com/rihofujino/items/39f1778d3458248e134d
・フォルダ構成
$/calender
- hello.go
- layout/
- - index.html
- - styles/
- - - style.css
calenderディレクトリ内に
・hello.go(ファイル)
・layout(フォルダ)
を用意し、layoutフォルダ内に下記を作成。
・index.html
・styles(フォルダ)
このstylesフォルダ内にさらに
・style.css
を作成。
結論はhello.go内でlayoutフォルダを読み込ませることで、
htmlとcssをサーバーに返します。
package main
import (
"log"
"net/http"
)
func main() {
//ディレクトリを指定する
fs := http.FileServer(http.Dir("layout"))
//ルーティング設定。"/"というアクセスがきたら、
//staticディレクトリのコンテンツを表示させる
http.Handle("/", fs)
log.Println("Listening...")
// 3000ポートでサーバーを立ち上げる
http.ListenAndServe(":3000", nil)
}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>A static page</title>
<link rel="stylesheet" href="/stylesheets/styles.css">
</head>
<body>
<h1>Hello, World</h1>
</body>
</html>
body {color: #c0392b}
そしたら実行します。
赤色のHello, Worldが表示されるはず。
$ go run hello.go
できましたか?
まとめ
具体的なやり方が分からなく手詰まりだったので少しは前進出来ました。
あとはhello.go上で日付を取ってhtmlに渡してあげたりマス目をつくってあげれば
カレンダーっぽくできるような。。
まだまだ手探りなのでtry&tryで頑張ります。