icz*_*cza 25

您的问题有点误导,因为它询问如何在Web浏览器中打开本地页面,但您实际上想知道如何启动Web服务器以便可以在浏览器中打开它.

http.FileServer()
/tmp/data
http.Handle("/", http.FileServer(http.Dir("/tmp/data")))
panic(http.ListenAndServe(":8080", nil))
net/http
func myHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello from Go")
}

func main() {
    http.HandleFunc("/", myHandler)
    panic(http.ListenAndServe(":8080", nil))
}

至于第一个(在默认浏览器中打开一个页面),Go标准库中没有内置支持.但这并不难,您只需要执行特定于操作系统的外部命令.您可以使用此跨平台解决方案:

// open opens the specified URL in the default browser of the user.
func open(url string) error {
    var cmd string
    var args []string

    switch runtime.GOOS {
    case "windows":
        cmd = "cmd"
        args = []string{"/c", "start"}
    case "darwin":
        cmd = "open"
    default: // "linux", "freebsd", "openbsd", "netbsd"
        cmd = "xdg-open"
    }
    args = append(args, url)
    return exec.Command(cmd, args...).Start()
}

此示例代码取自Gowut(Go Web UI Toolkit;披露:我是作者).

使用此命令在默认浏览器中打开以前启动的Web服务器:

open("http://localhost:8080/")
http.ListenAndServe()
go open("http://localhost:8080/")
panic(http.ListenAndServe(":8080", nil))

在网络服务器启动后,如何启动浏览器,请查看此问题:Go:如何在服务器开始监听后启动浏览器?