http.Handle("/static/", http.FileServer(http.Dir("")))
有什么问题?
我能找到的最短的例子如下:
fs := http.FileServer(http.Dir("static"))
http.Handle("/static/", http.StripPrefix("/static/", fs))
http.StripPrefix
是否必要?
答案 0 :(得分:2)
不是不需要,但如果你不使用它,用于查找文件的路径将包含前缀。这个例子更清楚,所以想象你的文件夹结构是:
main.go
static/
styles.css
你用以下文件提供文件:
http.Handle("/static/", http.FileServer(http.Dir("")))
然后,请求yoursite.com/static/styles.css
文件的用户将获得static dir中的styles.css文件。但要实现这一目标,你的路径必须完美排列。
大多数人更喜欢这样做:
fs := http.FileServer(http.Dir("static"))
http.Handle("/static/", http.StripPrefix("/static/", fs))
因为他们可以将他们的URL路径更改为/assets/
,而无需重命名静态目录(反之亦然 - 更改本地目录结构,不用更新URL路径)。
TL; DR - 路径前缀不是必需的,但对于完全匹配URL路径和本地目录结构的任何要求非常有用。