美文网首页程序员Golang语言社区Golang
74.根路径总是被访问两次,都是favicon.ico惹出来的

74.根路径总是被访问两次,都是favicon.ico惹出来的

作者: 厚土火焱 | 来源:发表于2018-10-14 00:14 被阅读27次

    在使用golang做web开发的时候,如果在根路径上直接输出内容,你会发现,你的访问总是被执行 2 次。
    根路径的 handler 是这个样子的

    func indexHandler(writer http.ResponseWriter, request *http.Request) {
        tms := time.Now().Format("2006-01-02 15:04:05.00000000")
        fmt.Println(tms,"Yes you in path: ",)
        fmt.Fprintln(writer, tms,"你正在访问的路径:index")
    }
    

    可是执行效果是这样的
    服务器显示


    服务器显示效果

    web界面显示


    web界面显示
    很显然,这样的服务器显示会对维护人员造成困扰。
    这个多出来的一次访问,是因为每当我们访问一个web站点的根路径时,会默认的访问寻找一下 favicon.ico 文件。对,就是我们常见的网站网址前面的那个小图标。
    如果你的web站点包含这样的小图标了。

    需要在模板页面中指定此图标的路径,这个问题就没有了。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后台管理界面</title>
        <link rel="icon" href="/userLogin/css/favicon.ico" type="image/x-icon" />
    </head>
    <body>
    {{.}}
    </body>
    </html>
    

    执行结果


    只显示一次

    如果没有ico文件,也可以通过代码回避这个问题。

        //取消获取facicon.ico的访问
        if request.RequestURI == "/facicon.ico" {
            return
        }
    
    

    这段代码添加到根路径对应的handler中即可。
    这样,你就不用担心,在跟路径页面上的访问记录会多一次的事情了。

    相关文章

      网友评论

        本文标题:74.根路径总是被访问两次,都是favicon.ico惹出来的

        本文链接:https://www.haomeiwen.com/subject/ysvaaftx.html