我有一个有效的解决方案,但我想微调它,同时了解它是如何工作的。
这是我的文件夹结构:
web/
├── main.go
└── public/
├── css/
├── js/
├── img/
│ └── pict.jpg
└── templates/
用于获取图片的当前路径是:
<img src="public/img/pict.jpg"></a>
获得图片的理想路径是(我想跳过公共/部分):
<img src="img/pict.jpg"></a>
相关的代码:
func main() {
http.HandleFunc("/", index)
http.Handle("/public/", http.StripPrefix("/public/", http.FileServer(http.Dir("./public"))))
http.ListenAndServe(":8080", nil)
}
同样的短路径也应该适用于css和js文件夹。 TIA!
试试这个:缺点是你需要为每个子目录重复这个
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.