golang FileServer设置目录

时间:2019-05-14 14:25:17

标签: go fileserver

我有一个带有FileServer函数的Golang Shell,我希望能够更改src目录。 这是我所拥有的:

func Server() {
    wdir, _ := os.Getwd()
    m := http.NewServeMux()
    fs := http.FileServer(http.Dir(wdir))
    m.Handle("/", http.StripPrefix("/", fs))
    s := http.Server{Addr: ":8000", Handler: m}
    m.HandleFunc("/shutdown", func(w http.ResponseWriter, r *http.Request) {
        s.Shutdown(context.Background())
    })
    if err := s.ListenAndServe(); err != nil && err != http.ErrServerClosed {
        log.Fatal(err)
    }
    log.Printf("Finished")
}

我有这种方式,因此如果我进入shutdown,FileServer将关闭。 但是无论我从哪个路径启动Server(),路径始终保持不变。

因此,如果我从外壳程序cd进入另一个文件夹并启动Server(),我仍将从可执行文件所在的目录中获取文件。

我想要的是,如果我从/home/user/Downloads/shell运行shell,然后在cd的shell中运行到/opt,则服务器中显示的文件就是{{1 }},而不是/opt

中的

1 个答案:

答案 0 :(得分:0)

您可以将FileServer path引入作为标志,并使用它来创建FileServer。

http.FileServer(http.Dir(path + "/opt")).

请检查go提供的标志library

在终端中,您可以将pwd输入该标志值