杜松子酒总是在加载index.html时报告错误
r := gin.New()
r.Use(gin.Logger())
r.Use(gin.Recovery())
r.LoadHTMLGlob("views/**/*")
r.GET("/", func(g *gin.Context) {
g.HTML(http.StatusOK, "index/index.html", gin.H{
"title":"test",
})
2018/11/27 20:23:46 [Recovery] 2018/11/27 - 20:23:46 panic recovered:
GET / HTTP/1.1
Host: localhost:8080
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: pix_k=admin; pix_v=L5lsdrVKJmpAa21DGibdbA%3D%3D
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
write tcp [::1]:8080->[::1]:55738: i/o timeout
C:/Go/src/runtime/panic.go:505 (0x4300c7)
gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz))
G:/gowork/src/github.com/gin-gonic/gin/context.go:725 (0xae81de)
(*Context).Render: panic(err)
G:/gowork/src/github.com/gin-gonic/gin/context.go:734 (0xae82a6)
(*Context).HTML: c.Render(code, instance)
G:/gowork/src/ihaveadream/routers/routers.go:18 (0xaffa91)
InitRouter.func1: g.HTML(http.StatusOK, "index/index.html", gin.H{
G:/gowork/src/github.com/gin-gonic/gin/context.go:108 (0xae3952)
(*Context).Next: c.handlers[c.index](c)
G:/gowork/src/github.com/gin-gonic/gin/recovery.go:52 (0xafca97)
RecoveryWithWriter.func1: c.Next()
G:/gowork/src/github.com/gin-gonic/gin/context.go:108 (0xae3952)
(*Context).Next: c.handlers[c.index](c)
G:/gowork/src/github.com/gin-gonic/gin/logger.go:84 (0xafb889)
LoggerWithWriter.func1: c.Next()
G:/gowork/src/github.com/gin-gonic/gin/context.go:108 (0xae3952)
(*Context).Next: c.handlers[c.index](c)
G:/gowork/src/github.com/gin-gonic/gin/gin.go:362 (0xaee92c)
(*Engine).handleHTTPRequest: c.Next()
G:/gowork/src/github.com/gin-gonic/gin/gin.go:328 (0xaee403)
(*Engine).ServeHTTP: engine.handleHTTPRequest(c)
C:/Go/src/net/http/server.go:2694 (0x7643ca)
serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
C:/Go/src/net/http/server.go:1830 (0x75f118)
(*conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
C:/Go/src/runtime/asm_amd64.s:2361 (0x45bcb0)
goexit: BYTE $0x90 // NOP
2018/11/27 20:23:46 [Recovery] 2018/11/27 - 20:23:46 panic recovered:
GET / HTTP/1.1
Host: localhost:8080
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: pix_k=admin; pix_v=L5lsdrVKJmpAa21DGibdbA%3D%3D
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
write tcp [::1]:8080->[::1]:55736: i/o timeout
C:/Go/src/runtime/panic.go:505 (0x4300c7)
gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz))
G:/gowork/src/github.com/gin-gonic/gin/context.go:725 (0xae81de)
(*Context).Render: panic(err)
G:/gowork/src/github.com/gin-gonic/gin/context.go:734 (0xae82a6)
(*Context).HTML: c.Render(code, instance)
G:/gowork/src/ihaveadream/routers/routers.go:18 (0xaffa91)
InitRouter.func1: g.HTML(http.StatusOK, "index/index.html", gin.H{
G:/gowork/src/github.com/gin-gonic/gin/context.go:108 (0xae3952)
(*Context).Next: c.handlers[c.index](c)
G:/gowork/src/github.com/gin-gonic/gin/recovery.go:52 (0xafca97)
RecoveryWithWriter.func1: c.Next()
G:/gowork/src/github.com/gin-gonic/gin/context.go:108 (0xae3952)
(*Context).Next: c.handlers[c.index](c)
G:/gowork/src/github.com/gin-gonic/gin/logger.go:84 (0xafb889)
LoggerWithWriter.func1: c.Next()
G:/gowork/src/github.com/gin-gonic/gin/context.go:108 (0xae3952)
(*Context).Next: c.handlers[c.index](c)
G:/gowork/src/github.com/gin-gonic/gin/gin.go:362 (0xaee92c)
(*Engine).handleHTTPRequest: c.Next()
G:/gowork/src/github.com/gin-gonic/gin/gin.go:328 (0xaee403)
(*Engine).ServeHTTP: engine.handleHTTPRequest(c)
C:/Go/src/net/http/server.go:2694 (0x7643ca)
serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
C:/Go/src/net/http/server.go:1830 (0x75f118)
(*conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
C:/Go/src/runtime/asm_amd64.s:2361 (0x45bcb0)
goexit: BYTE $0x90 // NOP
答案 0 :(得分:0)
如果index.html文件位于views / index / index.html中,则应使用此通配符。也尝试使用./
。
r.LoadHTMLGlob("./views/*")
r.GET("/", func(g *gin.Context) {
g.HTML(http.StatusOK, "index/index.html", gin.H{
"title":"test",
}
)
答案 1 :(得分:0)
这个问题似乎不是由模板加载引起的,您能显示包装信息还是显示更多代码?
有我的包裹:
views
-|index
-|-|index.html
main.go
main.go:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main(){
router := gin.Default()
//define template dir
router.LoadHTMLGlob("views/**/*")
// handel router
router.GET("/",func(c *gin.Context){
c.HTML(http.StatusOK,"index/index.html",gin.H{
"title":"test",
})
})
router.Run(":8080")
}
views / index / index.html:
{{define "index/index.html"}}
asdds
{{end}}
演示可以正常运行。我发现只有一个区别是,如果您在LoadHTMLGlob中使用subdir,我应该在html中定义模板,如下所示:
{{define "index/index.html"}}{{end}}