```go
package main
import (
"fmt"
"net/http"
"html/template"
)
var count int = 1
func demoHandler(w http.ResponseWriter, r *http.Request) {
t, err := template.New("demo").Parse("htllo {{.}}")
if err != nil {fmt.Println(err)}
fmt.Println(r.Method, count)
t.Execute(w, count)
count++
return
}
func demo() {
http.HandleFunc("/", demoHandler)
http.ListenAndServe(":8080", nil)
}
func main() {
demo()
}
```
每次打开/刷新网页都要GET两次,网页显示不是预期中的hello 1,2,3,4,5 ,而是hello 1,3,5,7,9,具体如下:
###### win10 cmd 里 go run执行代码,打开127.0.0.1:8080
---
网页显示:
```go
htllo 1
```
cmd显示:
```go
D:\go\src>go run ceshizhuanyong.go
GET 1
GET 2
```
---
刷新网页
网页显示:
```go
htllo 3
```
cmd显示:
```go
D:\go\src>go run ceshizhuanyong.go
GET 1
GET 2
GET 3
GET 4
```
---
一直刷新,网页显示hello 1,3,5,7,9,把t.Execute放在count++后面,网页显示hello 2,4,6,8,10,这样做好像没有任何意义哈~
网上找了一下,没找到答案,刚开始学,没有基础,只学过一点js,有哪位大佬回答问题请写的详细一些,如果没有时间写太详细请注明一个方向,我有足够多去查资料,感谢
随便做了个demo.html和favicon.ico,放在.go文件同目录下(src)
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="favicon.ico" />
<title>demo</title>
</head>
<body>
count = {{.}}
</body>
</html>
```
然后 `t, err := template.New("demo").Parse("htllo {{.}}")` --> `t, err := template.ParseFiles("demo.html")`
还是GET两次,浏览器能不能一次把demo.html和favicon.ico都GET到,我先去搜一下~
#3
更多评论
<a href="/user/liux95" title="@liux95">@liux95</a> 浏览器调用favicon的原理是首先在网页所在目录寻找favicon.ico文件,如果没有找到就去网站的根目录寻找。所以最简单的方法就是将制作好的favicon文件命名为favicon.ico然后上传到网站的根目录下。
上边网上看的,如果我做一个demo.html,根目录放一个favicon.ico,然后
template.ParseFiles("demo.html"),这样是不是就把问题解决了
#2