From 42370b5eb8f06d4bdfd4b828518b6f1a4cfd6210 Mon Sep 17 00:00:00 2001 From: lqixv Date: Fri, 26 Jul 2013 08:31:46 +0800 Subject: [PATCH 1/4] Update Quickstart.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更正某些错别字,或语义不清 --- docs/zh/Quickstart.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/Quickstart.md b/docs/zh/Quickstart.md index 1b72e8ed..360c6da9 100644 --- a/docs/zh/Quickstart.md +++ b/docs/zh/Quickstart.md @@ -115,7 +115,7 @@ 2013/04/13 19:36:17 [W] [stat views: no such file or directory] -- 模板会自动重新加载不缓存。 +- 模板每次使用都会重新加载,不进行缓存。 - 如果服务端出错,那么就会在浏览器端显示如下类似的截图: ![](images/dev.png) @@ -622,7 +622,7 @@ beego更加人性化的还有一个设计就是支持用户自定义字符串错 ## response处理 -response可能会有集中情况: +response可能会有几种情况: 1. 模板输出 From a39139c610a17d1865a113356408e0fbf22d697d Mon Sep 17 00:00:00 2001 From: lqixv Date: Fri, 26 Jul 2013 09:09:09 +0800 Subject: [PATCH 2/4] Update Quickstart.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 纠偏:从上面的例子中,并不能知道 DelSession(name string) 方法。 --- docs/zh/Quickstart.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/Quickstart.md b/docs/zh/Quickstart.md index 360c6da9..13f2039e 100644 --- a/docs/zh/Quickstart.md +++ b/docs/zh/Quickstart.md @@ -626,7 +626,7 @@ response可能会有几种情况: 1. 模板输出 - 模板输出上面模板介绍里面已经介绍,beego会在执行完相应的Controller里面的对应的Method之后输出到模板。 + 上面模板介绍里面已经介绍,beego会在执行完相应的Controller里面的对应的Method之后输出到模板。 2. 跳转 @@ -665,7 +665,7 @@ beego中使用session相当方便,只要在main入口函数中设置如下: this.TplNames = "index.tpl" } -上面的例子中我们知道session有几个方便的方法: +session有几个方便的方法: - SetSession(name string, value interface{}) - GetSession(name string) interface{} From 6fbdbaae8008f758f921828f33ab92129ee62879 Mon Sep 17 00:00:00 2001 From: miraclesu Date: Thu, 1 Aug 2013 11:57:29 +0800 Subject: [PATCH 3/4] Refactor template --- template.go | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/template.go b/template.go index 654bdf3f..6df25fd9 100644 --- a/template.go +++ b/template.go @@ -51,34 +51,35 @@ func (self *templatefile) visit(paths string, f os.FileInfo, err error) error { if f == nil { return err } - if f.IsDir() { + if f.IsDir() || (f.Mode()&os.ModeSymlink) > 0 { return nil - } else if (f.Mode() & os.ModeSymlink) > 0 { + } + if !HasTemplateEXt(paths) { return nil - } else { - hasExt := false - for _, v := range BeeTemplateExt { - if strings.HasSuffix(paths, v) { - hasExt = true - break - } - } - if hasExt { - replace := strings.NewReplacer("\\", "/") - a := []byte(paths) - a = a[len([]byte(self.root)):] - subdir := path.Dir(strings.TrimLeft(replace.Replace(string(a)), "/")) - if _, ok := self.files[subdir]; ok { - self.files[subdir] = append(self.files[subdir], paths) - } else { - m := make([]string, 1) - m[0] = paths - self.files[subdir] = m - } + } + replace := strings.NewReplacer("\\", "/") + a := []byte(paths) + a = a[len([]byte(self.root)):] + subdir := path.Dir(strings.TrimLeft(replace.Replace(string(a)), "/")) + if _, ok := self.files[subdir]; ok { + self.files[subdir] = append(self.files[subdir], paths) + } else { + m := make([]string, 1) + m[0] = paths + self.files[subdir] = m + } + + return nil +} + +func HasTemplateEXt(paths string) bool { + for _, v := range BeeTemplateExt { + if strings.HasSuffix(paths, "."+v) { + return true } } - return nil + return false } func AddTemplateExt(ext string) { From 2a9852fa9408d69b8f2f82e78dda81eb189f5827 Mon Sep 17 00:00:00 2001 From: miraclesu Date: Thu, 1 Aug 2013 12:10:56 +0800 Subject: [PATCH 4/4] Add template test --- template_test.go | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 template_test.go diff --git a/template_test.go b/template_test.go new file mode 100644 index 00000000..01ac0040 --- /dev/null +++ b/template_test.go @@ -0,0 +1,49 @@ +package beego + +import ( + "os" + "path/filepath" + "testing" +) + +func TestBuildTemplate(t *testing.T) { + dir := "_beeTmp" + files := []string{ + "1.tpl", + "2.html", + "3.htmltpl", + "4.mystyle", + } + if err := os.MkdirAll(dir, 0777); err != nil { + t.Fatal(err) + } + for _, name := range files { + if _, err := os.Create(filepath.Join(dir, name)); err != nil { + t.Fatal(err) + } + } + if err := BuildTemplate(dir); err != nil { + t.Fatal(err) + } + if len(BeeTemplates) != 1 { + t.Fatalf("should be 1 but got %v", len(BeeTemplates)) + } + for _, v := range BeeTemplates { + if len(v.Templates()) != 3 { + t.Errorf("should be 3 but got %v", len(v.Templates())) + } + } + + AddTemplateExt("mystyle") + if err := BuildTemplate(dir); err != nil { + t.Fatal(err) + } + if len(BeeTemplates) != 1 { + t.Fatalf("should be 1 but got %v", len(BeeTemplates)) + } + for _, v := range BeeTemplates { + if len(v.Templates()) != 4 { + t.Errorf("should be 4 but got %v", len(v.Templates())) + } + } +}