1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| package config
import (
"bytes"
"embed"
"github.com/spf13/viper"
"os"
"time"
)
// **嵌入文件只能在写embed指令的Go文件的同级目录或者子目录中
//go embed *.yaml
var configs embed.FS
func init() {
os.Setenv("ENV", "dev")
env := os.Getenv("ENV")
vp := viper.New()
// 根据环境变量 ENV 决定要读取的应用启动配置
configFileStream, err := configs.ReadFile("application." + env + ".yaml")
if err != nil {
panic(err)
}
// ……其它代码
|
golang 读取 env 文件一直失败, 最开始显示文件不存在
是因为 go embed 语法出现了错误, 应该是 go:embed *.yaml
之后出现了 env 文件读取不成功的情况, 原因在于
设置的 env 文件中
1
2
3
4
5
6
7
8
| app:
env:dev
//上面是错的,冒号后有空格才会被识别
//下面正确
app:
env: dev
|