http - 未提供静态目录
问题描述
我正在尝试在我的应用程序的根目录中提供一个名为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>
推荐阅读
- angular - 如何更改 matBadge 的背景颜色和颜色?
- r - 使用单独来划分包含日期格式的列
- javascript - 如何将文本添加到现有的 json 数组中?
- java - 在 Android 上阅读和理解 AMR 文件的内容
- javascript - 被注入输入字段的字符
- python - 如何让 Beautifulsoup 将表格中的串行 HTML 列表解析为 CSV 数据模式?
- git - Git 与 git clean -f -d -x 命令相反
- sql - 在 SQL Server 中查询 NULL 值的最快方法是什么?
- sql - 如何在sql中存储格式化文本?或者如何从 sql 中检索格式化文本?
- javascript - 在选择时填充下拉列表