gpt4 book ai didi

go - 在 Go 中提供静态文件时是否需要 http.StripPrefix?

转载 作者:IT王子 更新时间:2023-10-29 01:41:29 28 4
gpt4 key购买 nike

http.Handle("/static/", http.FileServer(http.Dir(""))) 有什么问题?

我能找到的最短的例子是这样的:

fs := http.FileServer(http.Dir("static"))
http.Handle("/static/", http.StripPrefix("/static/", fs))

http.StripPrefix 是否必要?

最佳答案

不,它不是必需的,但如果您不使用它,用于查找文件的路径将包含前缀。举个例子会更清楚,所以想象一下你的文件夹结构是:

main.go
static/
styles.css

然后您使用以下文件提供文件:

http.Handle("/static/", http.FileServer(http.Dir("")))

然后在 yoursite.com/static/styles.css 请求文件的用户将在静态目录中获得 styles.css 文件。但要使其发挥作用,您的路径必须完美对齐。

大多数人更喜欢执行以下操作:

fs := http.FileServer(http.Dir("static"))
http.Handle("/static/", http.StripPrefix("/static/", fs))

因为他们可以将其 URL 路径更改为类似 /assets/ 的内容,而无需重命名静态目录(反之亦然 - 更改本地目录结构而不更新 URL 路径)。

TL;DR - 路径前缀不是必需的,但有助于打破 URL 路径和本地目录结构完美匹配的任何要求。

关于go - 在 Go 中提供静态文件时是否需要 http.StripPrefix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44341203/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com