duanbo5230 2019-09-12 07:12
浏览 130
已采纳

无效的操作:connot index static [](字节类型的值)

When trying to change the static content information set in the toml file to one using environment variables error question that occurred

Put the corresponding code first

// .env variables
STATICS=[["web", "/var/www/ichain-admin-react"],["static", "static"]]


// source code
func serveStaticFiles(engine *gin.Engine) {
    statics := os.Getenv("STATICS")
    for i := 0; i < len(statics); i++ {
        url, root := statics[i][0], statics[i][1]

        if !path.IsAbs(root) {
            root = path.Join(config.ExecutedPath, root)
        }
        engine.Static(url, root)
    }
}
invalid operation: cannot index statics[i] (value of type byte)

I didn't find any articles that would help me much

Thank you

  • 写回答

1条回答 默认 最新

  • doushou1298 2019-09-12 07:37
    关注

    os.Getenv returns a string which you can't index in the way you're trying to. But since the value has the same format as a json array of arrays, you should be able to use the encoding/json package to parse the string and decode it into a Go slice.

    Something like this should work:

    func serveStaticFiles(engine *gin.Engine) {
        statics := os.Getenv("STATICS")
    
        slice := [][]string{}
        if err := json.Unmarshal([]byte(statics), &slice); err != nil {
            panic(err)
        }
        for i := 0; i < len(slice); i++ {
            url, root := slice[i][0], slice[i][1]
    
            if !path.IsAbs(root) {
                root = path.Join(config.ExecutedPath, root)
            }
            engine.Static(url, root)
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题