前提
HTMLにインクルードさせる為にGolangを活用して反映させようと思ったのですが上手く機能しません。初歩的なミスがあるかもしれませんが何卒宜しくお願い致します。
実現したいこと
- HTMLファイルをプレビューした結果、下記記載の希望するプレビュー結果の表示にGolangを用いてしたい。
プレビュー結果
msg: {{.}}
希望するプレビュー結果
msg: Sample Message
該当のソースコード
template000.html
1<!DOCTYPE html> 2<html> 3<body> 4 msg: {{.}} 5</body> 6</html>
main.go
1package trial 2 3import ( 4 "html/template" 5 "log" 6 "net/http" 7) 8 9func htmlHandler0(w http.ResponseWriter, r *http.Request) { 10 // テンプレートをパース 11 t := template.Must(template.ParseFiles("templates/template000.html.tpl")) 12 13 str := "Sample Message" 14 15 // テンプレートを描画 16 if err := t.ExecuteTemplate(w, "template000.html.tpl", str); err != nil { 17 log.Fatal(err) 18 } 19} 20 21func main() { 22 http.HandleFunc("/page0", htmlHandler0) 23 24 // サーバーを起動 25 http.ListenAndServe(":8989", nil) 26}
directory
1--- main.go 2--- template000.html
試したこと
- template000.htmlのプレビューを行いました。
補足情報(FW/ツールのバージョンなど)
- エディタはVSCodeを使用。
- 拡張機能でGOを追加済み。
どこがうまく行かないんでしょうか?
Webフレームワークを利用されているのでしたら、
そのWebサーバーに乗せる必要があると思いますが、「プレビューを行った」というのはどういう操作でしょうか。
プレビュー結果がmsg: {{.}}と出てしまうのでmsg: Sample Messageと表示されるようにしたいです。自分の中ではソースコードは間違ってないように見えるのですが...
単に「template000.htmlをブラウザアクセスした」だけならgo関係なくHTML単体での動作なので質問に提示のようになると思います。
goを通してパラメータなど送った「テンプレートファイル」として作動させたいのでしたら、goをWebアプリケーションとして実行する必要があります。
HTMLに直接アクセスしてませんか?
HTMLからGoを呼び出すことは出来ないと思います
HTMLから呼び出すとしたら、JavaScript通じてAjax/fetchでしょうね。
いずれにしてもWebアプリケーションに乗せてhttpリクエストが必要。
お二方のおっしゃられている通りHTMLで直接アクセスしておりました。なので反映されていなかったようです。ありがとうございます。

あなたの回答
tips
プレビュー