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

在使用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="//www.greatytc.com/userLogin/css/favicon.ico" type="image/x-icon" />
</head>
<body>
{{.}}
</body>
</html>

执行结果


只显示一次

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Greg Wilson是Software Carpentry(为科学家和工程师提供在计算技能方面的速成课程)的创始...
    妄心xyx阅读 3,925评论 0 3
  • 一. Java基础部分.................................................
    wy_sure阅读 3,867评论 0 11
  • 1. 分布式系统核心问题 参考书籍:《区块链原理、设计与应用》 一致性问题例子:两个不同的电影院买同一种电影票,如...
    molscar阅读 955评论 0 0
  • The "multicolor eyes-upward relay" app respects and prote...
    逍遥alan阅读 173评论 0 0
  • 上初中的时候我就想着以后要当要甜点师.可以做出好吃的蛋糕.....也可能是看了我是金三顺 同样都是肉嘟嘟 便有一种...
    汪三宝阅读 601评论 2 3