diff --git a/net/ghttp/ghttp_z_unit_test.go b/net/ghttp/ghttp_z_unit_test.go index 90f9c8d53..ed88da876 100644 --- a/net/ghttp/ghttp_z_unit_test.go +++ b/net/ghttp/ghttp_z_unit_test.go @@ -13,10 +13,12 @@ import ( "testing" "time" + "github.com/gogf/gf/v2/debug/gdebug" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/genv" "github.com/gogf/gf/v2/test/gtest" + "github.com/gogf/gf/v2/text/gstr" "github.com/gogf/gf/v2/util/guid" ) @@ -74,3 +76,27 @@ func Test_XUrlPath(t *testing.T) { t.Assert(c.GetContent(ctx, "/test1"), "test2") }) } + +func Test_Issue1611(t *testing.T) { + s := g.Server(guid.S()) + v := g.View(guid.S()) + content := "This is header" + gtest.AssertNil(v.SetPath(gdebug.TestDataPath("issue1611"))) + s.SetView(v) + s.BindHandler("/", func(r *ghttp.Request) { + gtest.AssertNil(r.Response.WriteTpl("index/layout.html", g.Map{ + "header": content, + })) + }) + s.SetDumpRouterMap(false) + s.Start() + defer s.Shutdown() + + time.Sleep(100 * time.Millisecond) + gtest.C(t, func(t *gtest.T) { + c := g.Client() + c.SetPrefix(fmt.Sprintf("http://127.0.0.1:%d", s.GetListenedPort())) + + t.Assert(gstr.Contains(c.GetContent(ctx, "/"), content), true) + }) +} diff --git a/net/ghttp/testdata/issue1611/header.html b/net/ghttp/testdata/issue1611/header.html new file mode 100644 index 000000000..9bbb2fdfd --- /dev/null +++ b/net/ghttp/testdata/issue1611/header.html @@ -0,0 +1,3 @@ +{{define "header"}} +

{{.header}}

+{{end}} \ No newline at end of file diff --git a/net/ghttp/testdata/issue1611/index/layout.html b/net/ghttp/testdata/issue1611/index/layout.html new file mode 100644 index 000000000..82e831ceb --- /dev/null +++ b/net/ghttp/testdata/issue1611/index/layout.html @@ -0,0 +1,9 @@ + + + + GoFrame Layout + + +{{template "header" .}} + + \ No newline at end of file diff --git a/os/gview/gview_parse.go b/os/gview/gview_parse.go index 943d9c232..b83096349 100644 --- a/os/gview/gview_parse.go +++ b/os/gview/gview_parse.go @@ -364,7 +364,7 @@ func (view *View) searchFile(ctx context.Context, file string) (path string, fol `\/`, ) if path, _ = gspath.Search(searchPath, relativePath); path != "" { - folder = gfile.Dir(path) + folder = gfile.Join(searchPath, tryFolder) return } }