我http.FileServer在 Go 中使用将一些静态文件提供到目录中。
这是我使用 mux 作为路由器来映射它的方式:
r.PathPrefix("/download").Handler(http.StripPrefix("/download", http.FileServer(http.Dir(dirPath)))).Methods("GET")
Run Code Online (Sandbox Code Playgroud)
其中dirPath是我的文件系统中目录的绝对路径。
现在,当使用 localhost:8080/download 询问目录列表时,它似乎工作正常,因为它返回这样的页面
<pre>
<a href="a.xml">a.xml</a>
<a href="b.xml">b.zip</a>
</pre>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些链接已损坏,因为我希望将它们映射到例如localhost:8080/download/a.xml,而文件服务器将它们映射到localhost:8080/a.xml。
如何使我的目录列表/download在链接中保留路径前缀?