首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除urls中的尾斜杠- Go静态服务器

删除urls中的尾斜杠- Go静态服务器
EN

Stack Overflow用户
提问于 2020-06-29 16:01:01
回答 1查看 2.2K关注 0票数 1

我用http.FileServer设置了一个简单的Go静态文件服务器。如果我有一个类似public > about > index.html的目录结构,服务器将正确地将/about解析为about > index.html,但是它会添加一个尾随斜杠,从而使url变成/about/

在使用http.FileServer时,是否有一种简单的方法来删除这些拖尾斜杠?最终,无论是哪种方式,它都是可行的--如果可能的话,不使用尾随斜杠只是个人偏好。

EN

回答 1

Stack Overflow用户

发布于 2020-06-29 18:58:44

注册路由/about/时,会添加/about的隐式路由(它将客户端重定向到/about/)。

要解决此问题,您可以注册两个显式路由:

  • /about为您的index.html
  • /about/提供服务,为http.FileServer处理页面

的任何HTML资产。

就像这样:

代码语言:javascript
复制
// what you had before
h.Handle("/about/",
    http.StripPrefix(
        "/about/",
        http.FileServer(http.Dir("/tmp/about-files")),
    ),
)

// prevents implicit redirect to `/about/`
h.HandleFunc("/about",
    func(w http.ResponseWriter, r *http.Request) {
        http.ServeFile(w, r, "index.html") // serves a single file from this route
    },
)

https://play.golang.org/p/WLwLPV5WuJm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62642098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档