zoukankan      html  css  js  c++  java
  • http.StripPrefix 的参数含义

    看下面两行代码:

    http.Handle("/file/", http.StripPrefix("/file", http.FileServer(http.Dir("./output/"))))
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./output/"))))
    http.Handle("/file1", http.StripPrefix("/file1", http.FileServer(http.Dir("./output/"))))
    http.Handle("/file2", http.StripPrefix("/file2/", http.FileServer(http.Dir("./output/"))))

    注意看下图结果:

    • 1、2 行链接地址是带对应前缀的。
    • 3行链接地址不带
    • 4直接 404

     

    image

    image

     

    image

    image

     

    TrimPrefix

    TrimPrefix returns s without the provided leading prefix string. If s doesn't start with prefix, s is returned unchanged.

    StripPrefix

    // StripPrefix returns a handler that serves HTTP requests
    // by removing the given prefix from the request URL's Path
    // and invoking the handler h. StripPrefix handles a
    // request for a path that doesn't begin with prefix by
    // replying with an HTTP 404 not found error.
    func StripPrefix(prefix string, h Handler) Handler {
        if prefix == "" {
            return h
        }
        return HandlerFunc(func(w ResponseWriter, r *Request) {
            if p := strings.TrimPrefix(r.URL.Path, prefix); len(p) < len(r.URL.Path) {
                r.URL.Path = p
                h.ServeHTTP(w, r)
            } else {
                NotFound(w, r)
            }
        })
    }
    如上图代码所示,
    404 是触发了上面的 else 条件。
  • 相关阅读:
    【Python】异常处理
    【Python】写入文件
    【Python】从文件中读取数据
    【Python】导入类
    【Python】继承
    【Python】使用类和实例
    SQL HAVING
    SQL GROUP BY
    SQL ORDER BY
    SQL CREATE INDEX
  • 原文地址:https://www.cnblogs.com/ghj1976/p/5102556.html
Copyright © 2011-2022 走看看