html - Golang 提供 html 文件

标签 html go gorilla

我在文件夹/html 中有一些 html 文件(例如 main.html、page1.html、page2.html 等)。然后我使用下一个 Go 代码服务它

r := mux.NewRouter()
r.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir(htmlDir))))

所以如果我打开地址 http://127.0.0.1/page1.html ,然后将显示 page1.html(这是我需要的)。 但是我也想绑定(bind)地址http://127.0.0.1/到 main.html。我该怎么做?

我可以将 main.html 重命名为 index.html,但我认为这不是正确的方法。

最佳答案

您可以另外添加一个 HandlerFunc 来处理它:

r := mux.NewRouter()
r.HandleFunc("/", homeHandler)
r.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir(htmlDir))))

在 homeHandler 中,您提供要提供的文件:

func homeHandler(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, fmt.Sprintf("./%s/index.htm", htmlDir))
}

可能还有其他选择...

关于html - Golang 提供 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45054471/

相关文章:

python - Python 中的递归与 Beautiful Soup

javascript - JS获取函数的父对象

go - Go中对象的大小

go websockets with gorilla libs - 未知的 json 响应,所以无法映射它

jquery - 更改嵌套行类 onclick

html - 使用 Twitter Bootstrap 时导航栏和图像之间的额外空间

json - 在golang中解析没有索引名称的json

Golang os.stdin 作为 Goroutines 中的阅读器

Golang 在包之间共享配置

Golang Gorilla Websocket 在 120 秒时停止接收信息