Golangで作ったサーバで、ローカルディレクトリを指定する方法

以下の"main.go"が、c:\user\ebata\go_template\testsにあるとする。

package main

import (
	"log"
	"net/http"
)

func main() {

	// アクセスされたURLから /web 部分を取り除いてハンドリングする
	http.Handle("/web/", http.StripPrefix("/web", http.FileServer(http.Dir("static"))))

	if err := http.ListenAndServe(":8686", nil); err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

で、c:\user\ebata\go_template\tests の下に、staticというディレクトリを掘って、そこに、画像ファイル(例:helicopter.png)を放り込んでおく。

で、go run main.goを起動して、ブラウザから、
http://localhost:8686/web/helicopter.png
と入力すると、画像が出てきます。

注意

http.Handle("/web", では動きません。

http.Handle("/web/", で動きます。

2022/01,江端さんの技術メモ

Posted by ebata