mirror of
https://github.com/cloudreve/cloudreve.git
synced 2025-10-28 23:26:01 +08:00
Fix: embed static file not work (introduced in #1107)
embed file system should be declared in main pkg
This commit is contained in:
2
assets
2
assets
Submodule assets updated: 3d749b7bbe...907f86550d
@ -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"
|
||||
@ -16,7 +17,7 @@ import (
|
||||
)
|
||||
|
||||
// Init 初始化启动
|
||||
func Init(path string) {
|
||||
func Init(path string, statics embed.FS) {
|
||||
InitApplication()
|
||||
conf.Init(path)
|
||||
// Debug 关闭时,切换为生产模式
|
||||
@ -79,7 +80,7 @@ func Init(path string) {
|
||||
{
|
||||
"master",
|
||||
func() {
|
||||
InitStatic()
|
||||
InitStatic(statics)
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@ -19,8 +19,6 @@ import (
|
||||
|
||||
const StaticFolder = "statics"
|
||||
|
||||
var StaticEmbed embed.FS
|
||||
|
||||
type GinFS struct {
|
||||
FS http.FileSystem
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
|
||||
6
main.go
6
main.go
@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user