http - 静态目录未得到服务

标签 http go filesystems

我正在尝试在我的应用程序的根目录中提供一个名为 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 访问它。

最佳答案

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

如果您仍然卡住了,请从这个基本设置开始:

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>

关于http - 静态目录未得到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55601663/

相关文章:

java - 在Java中使用HTTP post来模拟Web浏览器

angularjs - 向 logstash 发出发布请求时出现 CORS 错误

java - HTTP 帖子正文虚假丢失(HttpURLConnection 和 Jetty)

swift : Convert byte array into CIImage

go - 加载带有和不带有 go-routines 的 map

filesystems - 虚拟文件系统

Java:断言文件序列化完成?

multithreading - Go 线程死锁错误 - go 例程的正确使用方法是什么?

python - 无法让 python 跟随 base32 编码

c - 多进程与多线程共享的文件系统