web.exe运行后报错,找不到目录文件
来源:6-4 build脚本和homeHandler
muke_007
2018-11-29

本人用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)
}
2回答
-
陈大洋
2019-02-15
初步猜测你run错了web.exe文件,仔细看 build.sh文件,里边是copy了web文件放到`video_server_web_ui`文件夹下边,只有run这个文件夹里边的web.exe,才能找到相对路径的templates文件。
00 -
艾文西
2018-12-03
没用过windows来写代码,不过感觉是不是把静态文件放错地方了?
go编译后的二进制文件应该都在bin下面,你把静态文件放到src下面,自然是找不到的
032018-12-07
相似问题
回答 6
回答 2