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 | 65 +++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/bootstrap/static.go b/bootstrap/static.go index 39cf5bcf..e22ebd0a 100644 --- a/bootstrap/static.go +++ b/bootstrap/static.go @@ -45,46 +45,47 @@ func InitStatic() { if util.Exists(util.RelativePath("statics")) { util.Log().Info("检测到 statics 目录存在,将使用此目录下的静态资源文件") StaticFS = static.LocalFile(util.RelativePath("statics"), false) - } else { - StaticFS = &GinFS{} - StaticFS.(*GinFS).FS, err = fs.New() + + // 检查静态资源的版本 + f, err := StaticFS.Open("version.json") if err != nil { - util.Log().Panic("无法初始化静态资源, %s", err) + util.Log().Warning("静态资源版本标识文件不存在,请重新构建或删除 statics 目录") + return } - } - // 检查静态资源的版本 - 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 + } - 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 + } - 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" + } - staticName := "cloudreve-frontend" - if conf.IsPro == "true" { - staticName += "-pro" - } + if v.Name != staticName { + util.Log().Warning("静态资源版本不匹配,请重新构建或删除 statics 目录") + return + } - 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 + } - 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() + if err != nil { + util.Log().Panic("无法初始化静态资源, %s", err) + } } }