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:如何在服务器开始监听后启动浏览器?