登录成功之后w.Write([]byte("http://" + r.Host + "/static/view/home.html"))

来源:4-3 编码实战:实现用户登录接口

杰神

2019-03-24

post方法请求登录接口/user/signin,最后验证登录正确,老师视频里面是直接用w.Write([]byte("http://" + r.Host + "/static/view/home.html"))让客户端自己跳转,但是在我这边,没有实现跳转功能,只是把http://localhost:8082/static/view/home.html这个字符串作为post的结果返回给客户端了

写回答

4回答

xiaomo

2019-03-24

麻烦检查下main.go里有没加上静态资源文件的处理逻辑了:

func main() {
    // 静态资源处理
    http.Handle("/static/",
        http.StripPrefix("/static/",
            http.FileServer(http.Dir("./static"))))
    
    // ...
}
0
0

Ans217

2019-03-24

//img.mukewang.com/szimg/5c9798f200014a4322721096.jpg

我也遇到了,没跳转


0
1
xiaomo
麻烦检查下main.go里有没加上静态资源文件的处理逻辑,这个逻辑我可能漏了讲解。
2019-03-24
共1条回复

杰神

提问者

2019-03-24

//img.mukewang.com/szimg/5c9797c50001510a30641370.jpg

//img.mukewang.com/szimg/5c9797c50001d23f19221400.jpg

第一张图里, 我直接在login按钮那注释掉原有代码的所有请求,进行window.location跳转到home页面。第二张图演示结果。在点击完按钮之后,谷歌浏览器有看到多了一个home.html的请求,并且浏览器url也有变化了。但是我的页面还是以前旧的登录页,而不是主页。我确定home.html这个页面是跟登录页内容不同的。

0
0

杰神

提问者

2019-03-24

if r.Method == http.MethodGet {
  data, err := ioutil.ReadFile("./static/view/signin.html")
  if err != nil {
     w.WriteHeader(http.StatusInternalServerError)
     return
  }
  w.Write(data)
}

0
8
xiaomo
回复
杰神
所以静态资源访问设置好应该就可以了
2019-03-25
共8条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程