From 9910f8d73288f464cf6bdee0835aa514eba28785 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Sun, 12 Apr 2020 12:46:59 +0800 Subject: [PATCH] Modify: check static file version when statics folder exists --- bootstrap/static.go | 69 +++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/bootstrap/static.go b/bootstrap/static.go index 39cf5bc..e22ebd0 100644 --- a/bootstrap/static.go +++ b/bootstrap/static.go @@ -45,6 +45,41 @@ func InitStatic() { if util.Exists(util.RelativePath("statics")) { util.Log().Info("检测到 statics 目录存在,将使用此目录下的静态资源文件") StaticFS = static.LocalFile(util.RelativePath("statics"), false) + + // 检查静态资源的版本 + f, err := StaticFS.Open("version.json") + if err != nil { + util.Log().Warning("静态资源版本标识文件不存在,请重新构建或删除 statics 目录") + return + } + + b, err := ioutil.ReadAll(f) + if err != nil { + util.Log().Warning("无法读取静态资源文件版本,请重新构建或删除 statics 目录") + return + } + + var v staticVersion + if err := json.Unmarshal(b, &v); err != nil { + util.Log().Warning("无法解析静态资源文件版本, %s", err) + return + } + + staticName := "cloudreve-frontend" + if conf.IsPro == "true" { + staticName += "-pro" + } + + if v.Name != staticName { + util.Log().Warning("静态资源版本不匹配,请重新构建或删除 statics 目录") + return + } + + if v.Version != conf.RequiredStaticVersion { + util.Log().Warning("静态资源版本不匹配 [当前 %s, 需要: %s],请重新构建或删除 statics 目录", v.Version, conf.RequiredStaticVersion) + return + } + } else { StaticFS = &GinFS{} StaticFS.(*GinFS).FS, err = fs.New() @@ -53,38 +88,4 @@ func InitStatic() { } } - // 检查静态资源的版本 - f, err := StaticFS.Open("version.json") - if err != nil { - util.Log().Warning("静态资源版本标识文件不存在,请重新构建或删除 statics 目录") - return - } - - b, err := ioutil.ReadAll(f) - if err != nil { - util.Log().Warning("无法读取静态资源文件版本,请重新构建或删除 statics 目录") - return - } - - var v staticVersion - if err := json.Unmarshal(b, &v); err != nil { - util.Log().Warning("无法解析静态资源文件版本, %s", err) - return - } - - staticName := "cloudreve-frontend" - if conf.IsPro == "true" { - staticName += "-pro" - } - - if v.Name != staticName { - util.Log().Warning("静态资源版本不匹配,请重新构建或删除 statics 目录") - return - } - - if v.Version != conf.RequiredStaticVersion { - util.Log().Warning("静态资源版本不匹配 [当前 %s, 需要: %s],请重新构建或删除 statics 目录", v.Version, conf.RequiredStaticVersion) - return - } - }