Http 静态目录未得到服务

Http 静态目录未得到服务,http,go,filesystems,Http,Go,Filesystems,我正在尝试为应用程序根目录中名为assets的文件夹提供服务。我希望可以通过url/details/访问其中的所有文件和子文件夹 fs:=http.FileServer(http.Dir(“资产”)) Handle(“/details/”,http.StripPrefix(“/details/”,fs)) 我每样东西都能拿到404。我是否错误地使用了StripPrefix 为了清楚起见,假设资产包含test.json。我希望可以从URL/details/test.json中访问这些内容。根据上

我正在尝试为应用程序根目录中名为
assets
的文件夹提供服务。我希望可以通过url
/details/
访问其中的所有文件和子文件夹

fs:=http.FileServer(http.Dir(“资产”))
Handle(“/details/”,http.StripPrefix(“/details/”,fs))
我每样东西都能拿到404。我是否错误地使用了
StripPrefix


为了清楚起见,假设
资产
包含
test.json
。我希望可以从URL
/details/test.json

中访问这些内容。根据上述注释,请仔细检查您的路径、权限、用户上下文等

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

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),
        )   
}
并用旋度等测试

$ 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>
$find/tmp/assets
/tmp/资产
/tmp/assets/test.json
$go run./main.go
$curl localhost:8080/详细信息/

尝试使用
/details/
而不是
/details/
作为测试,尝试使用资产目录的绝对路径。以上是一个相对路径-如果您的go服务器不在同一目录中,它将找不到。@Abdullah
/details/
处理程序路径正确。是否存在用户权限问题?i、 e.哪个用户正在运行go服务器,资产目录中的owership文件是什么?通过指向/tmp/assets并使所有文件/目录为“r-x”,简化测试您发布的代码没有问题。我运行了它,它工作正常。确保你的url没有输入错误