2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2020-01-24 Go言語でWebサーバを作る時の注意点 [長年日記]

忘れない内に記載しておく

まず、以下のプログラムを、main.go とかいう名前でセーブして、go build main.go をすると、 main という実行フィイルができる。

ところが、問題は、これを、任意のディレクトリから実行させようとすると、絶対パスの記載が必要となり、これを見つけるのに結構な時間がかかった。

結果としては、以下のようにすれば良いらしい(動いている)。

package main
 
import (
    "log"
    "net/http"
)
 
func main() {
     http.Handle("/", http.FileServer(http.Dir("/home/pi/wstest4/static")))
 
    if err := http.ListenAndServe(":8686", nil); err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

上記のプログラムを、"http:/localhost:8686/xxxxx.html"とブラウザに打ちこむと

/home/pi/wstest4/static/xxxxx.htmlのファイルが表示される

もしプログラムの http.Handle("/" を、http.Handle("/hogehoge" とすると、"http:/localhost:8686/hogehoge/xxxxx.html"と入力することで

/home/pi/wstest4/static/xxxxx.htmlのファイルが表示される