请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

web.exe运行后报错,找不到目录文件

图片描述

本人用windows操作系统,用的Git-Bash工具
尝试过以下的方式:
曾经把main函数改成: router.ServeFiles("/src/*filepath", http.Dir("/video_server/templates"))也不行
handlers.go文件:
t, e := template.ParseFiles("./templates/home.html")

main.go文件:
router.ServeFiles("/statics/*filepath", http.Dir("./templates"))

完整的handlers.go文件:
package main
import (
github.com/julienschmidt/httprouter
“html/template”
“log”
“net/http”
)
type HomePage struct {
Name string
}
func HomeController(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
p := &HomePage{Name: “ajun”}
t, e := template.ParseFiles("./templates/home.html") //parser to bin for web page
if e != nil {
log.Printf(“parsing template home.html error :%s”, e)
return
}
t.Execute(w, p)
return
}

完整的main.go文件:

package main

import (
“net/http”
github.com/julienschmidt/httprouter
)
func RegisterHandler() *httprouter.Router {
router:=httprouter.New()
router.GET("/", HomeController)
router.POST("/", HomeController)
router.ServeFiles("/statics/*filepath", http.Dir("/templates"))
return router

}
func main() {
r:=RegisterHandler()
http.ListenAndServe(":8080", r)
}

正在回答 回答被采纳积分+3

2回答

陈大洋 2019-02-15 20:52:25

初步猜测你run错了web.exe文件,仔细看 build.sh文件,里边是copy了web文件放到`video_server_web_ui`文件夹下边,只有run这个文件夹里边的web.exe,才能找到相对路径的templates文件。

0 回复 有任何疑惑可以回复我~
艾文西 2018-12-03 08:45:14

没用过windows来写代码,不过感觉是不是把静态文件放错地方了?

go编译后的二进制文件应该都在bin下面,你把静态文件放到src下面,自然是找不到的

0 回复 有任何疑惑可以回复我~
  • 提问者 muke_007 #1
    web.exe没有放错位置就是生成在bin下面的
    回复 有任何疑惑可以回复我~ 2018-12-07 16:27:44
  • 提问者 muke_007 #2
    老师怎么才能联系到你,帮忙远程看看呢?
    回复 有任何疑惑可以回复我~ 2018-12-07 16:47:30
  • 提问者 muke_007 #3
    老师我已经放弃了win了,折腾了半天最后上虚拟机了,哈哈,微软,哎,拿什么拯救它.....感谢老师的回复
    回复 有任何疑惑可以回复我~ 2018-12-07 20:05:38
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信