首页 > 解决方案 > 未提供静态目录

问题描述

我正在尝试在我的应用程序的根目录中提供一个名为assets. 我希望那里的所有文件和子文件夹都可以通过 url 访问/details/

fs := http.FileServer(http.Dir("assets"))
http.Handle("/details/", http.StripPrefix("/details/", fs))

我仍然得到404的一切。我使用StripPrefix不正确吗?

为了清楚起见,假设assets包含test.json. 我希望可以从 URL 访问它/details/test.json

标签: httpgofilesystems

解决方案


根据上述评论,仔细检查您的路径、权限、用户上下文等。

如果您仍然卡住,请从以下基本设置开始:

package main

import (
        "log"
        "net/http"
)

func main() {
        fs := http.FileServer(http.Dir("/tmp/assets"))
        http.Handle("/details/", http.StripPrefix("/details/", fs))
        log.Fatal(
                http.ListenAndServe(":8080", nil),
        )   
}

并用 curl 等进行测试。

$ find /tmp/assets

/tmp/assets
/tmp/assets/test.json

$ go run ./main.go

$ curl localhost:8080/details/

<pre>
<a href="test.json">test.json</a>
</pre>

推荐阅读