Skip to content

Commit

Permalink
Fix: embed static file not work (introduced in cloudreve#1107)
Browse files Browse the repository at this point in the history
embed file system should be declared in main pkg
  • Loading branch information
HFO4 committed Apr 12, 2022
1 parent 6451e4c commit 0a18d98
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 12 deletions.
2 changes: 1 addition & 1 deletion assets
Submodule assets updated 128 files
5 changes: 3 additions & 2 deletions bootstrap/init.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package bootstrap

import (
"embed"
model "github.com/cloudreve/Cloudreve/v3/models"
"github.com/cloudreve/Cloudreve/v3/models/scripts"
"github.com/cloudreve/Cloudreve/v3/pkg/aria2"
Expand All @@ -16,7 +17,7 @@ import (
)

// Init 初始化启动
func Init(path string) {
func Init(path string, statics embed.FS) {
InitApplication()
conf.Init(path)
// Debug 关闭时,切换为生产模式
Expand Down Expand Up @@ -79,7 +80,7 @@ func Init(path string) {
{
"master",
func() {
InitStatic()
InitStatic(statics)
},
},
{
Expand Down
10 changes: 4 additions & 6 deletions bootstrap/static.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ import (

const StaticFolder = "statics"

var StaticEmbed embed.FS

type GinFS struct {
FS http.FileSystem
}
Expand All @@ -47,13 +45,13 @@ func (b *GinFS) Exists(prefix string, filepath string) bool {
}

// InitStatic 初始化静态资源文件
func InitStatic() {
func InitStatic(statics embed.FS) {
if util.Exists(util.RelativePath(StaticFolder)) {
util.Log().Info("检测到 statics 目录存在,将使用此目录下的静态资源文件")
StaticFS = static.LocalFile(util.RelativePath("statics"), false)
} else {
// 初始化静态资源
embedFS, err := fs.Sub(StaticEmbed, "assets/build")
embedFS, err := fs.Sub(statics, "assets/build")
if err != nil {
util.Log().Panic("无法初始化静态资源, %s", err)
}
Expand Down Expand Up @@ -98,9 +96,9 @@ func InitStatic() {
}

// Eject 抽离内置静态资源
func Eject() {
func Eject(statics embed.FS) {
// 初始化静态资源
embedFS, err := fs.Sub(StaticEmbed, "assets/build")
embedFS, err := fs.Sub(statics, "assets/build")
if err != nil {
util.Log().Panic("无法初始化静态资源, %s", err)
}
Expand Down
6 changes: 3 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,20 @@ var (
)

//go:embed assets/build
var StaticEmbed embed.FS
var staticEmbed embed.FS

func init() {
flag.StringVar(&confPath, "c", util.RelativePath("conf.ini"), "配置文件路径")
flag.BoolVar(&isEject, "eject", false, "导出内置静态资源")
flag.StringVar(&scriptName, "database-script", "", "运行内置数据库助手脚本")
flag.Parse()
bootstrap.Init(confPath)
bootstrap.Init(confPath, staticEmbed)
}

func main() {
if isEject {
// 开始导出内置静态资源文件
bootstrap.Eject()
bootstrap.Eject(staticEmbed)
return
}

Expand Down

0 comments on commit 0a18d98

Please sign in to comment.