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 条件。
  • 相关阅读:
    2. 开关电源.电感
    1. 开关电源.引子
    资源介绍
    3. EMC EMS EMI
    2. 基于MCU应用的EMC指南
    1. 内部管脚电路
    9.150 Predefined macros
    海康安防平台
    Redis常见配置
    利用python检测单词的相似度
  • 原文地址:https://www.cnblogs.com/ghj1976/p/5102556.html
Copyright © 2011-2022 走看看