Skip to content

简介

静态资源模块,提供基于 Go embed.FS 的嵌入文件系统访问能力。支持检查文件是否存在和读取 JSON 配置文件(严格模式和宽容模式)。严格模式在文件读取失败或解析失败时直接抛出异常并退出,宽容模式返回错误供业务代码处理。

导入

go
import "github.com/wallace5303/ee-go/estatic"

API

StaticFS

说明:嵌入文件系统实例,类型为 embed.FS。业务代码通过此变量访问编译时嵌入的静态资源文件。

类型embed.FS

示例

go
data, err := estatic.StaticFS.ReadFile("config/app.json")
if err != nil {
    fmt.Println("读取失败:", err)
}

FileIsExist(name)

说明:检查嵌入文件系统中是否存在指定文件。通过调用 StaticFS.ReadFile 并检查是否返回错误来判断文件是否存在。

参数

参数类型必填说明
namestring嵌入文件系统中的文件路径,例如 "config/app.json"

返回值bool — 文件存在返回 true,不存在返回 false

示例

go
if estatic.FileIsExist("public/html/failure.html") {
    fmt.Println("嵌入文件系统中存在该文件")
}

ReadJsonStrict(f)

说明:从嵌入文件系统读取 JSON 文件并解析为 map[string]any。严格模式:读取失败或 JSON 解析失败时,调用 eerror.ThrowWithCode 抛出异常并退出进程(退出码为 ExitConfigFileFS)。适用于必须存在的配置文件。

参数

参数类型必填说明
fstring嵌入文件系统中的 JSON 文件路径

返回值map[string]any — JSON 文件解析后的键值映射

示例

go
config := estatic.ReadJsonStrict("config/app.json")
fmt.Println("应用名称:", config["name"])

参见eutil.ReadJsonStrict — 从磁盘文件系统读取 JSON(严格模式)

ReadJson(f)

说明:从嵌入文件系统读取 JSON 文件并解析为 map[string]any。宽容模式:读取失败或 JSON 解析失败时返回错误,不退出进程。适用于可选配置文件。

参数

参数类型必填说明
fstring嵌入文件系统中的 JSON 文件路径

返回值(map[string]any, error) — 成功时返回 JSON 解析结果和 nil,失败时返回 nil 和错误信息

示例

go
config, err := estatic.ReadJson("config/optional.json")
if err != nil {
    fmt.Println("可选配置未找到,使用默认值")
    config = map[string]any{}
}
fmt.Println("配置:", config)

参见eutil.ReadJson — 从磁盘文件系统读取 JSON(宽容模式)