我有一个可行的解决方案,但我想对其进行微调,同时了解其工作原理。
这是我的文件夹结构:
web/
├── main.go
└── public/
├── css/
├── js/
├── img/
│ └── pict.jpg
└── templates/
当前获取图片的路径为:
<img src="public/img/pict.jpg"></a>
获取图片的理想路径是(我想跳过公共/部分):
<img src="img/pict.jpg"></a>
相关的go代码:
func main() {
http.HandleFunc("/", index)
http.Handle("/public/", http.StripPrefix("/public/", http.FileServer(http.Dir("./public"))))
http.ListenAndServe(":8080", nil)
}
相同的短路径也应适用于css和js文件夹。 TIA!
答案 0 :(得分:1)
尝试一下:缺点是您需要对每个子目录重复此操作
http.HandleFunc("/", index)
http.Handle("/img/",
http.StripPrefix("/img/", http.FileServer(http.Dir("./public/img"))))
http.Handle("/css/",
http.StripPrefix("/css/", http.FileServer(http.Dir("./public/css"))))
// ... etc.