广告位联系
返回顶部
分享到

Golang使用embed引入静态文件的代码

Golang 来源:互联网 作者:佚名 发布时间:2024-06-02 15:43:54 人浏览
摘要

Go 语言从 1.16 版本开始引入了一个新的标准库embed,可以在二进制文件中引入静态文件 指令:/go:embed 通过一个简单的小实例,来演示将静态文件引入到golang的二进制打包产物中 项目结构 1 2

Go 语言从 1.16 版本开始引入了一个新的标准库 embed,可以在二进制文件中引入静态文件

指令:/go:embed

通过一个简单的小实例,来演示将静态文件引入到golang的二进制打包产物中

项目结构

1

2

3

4

5

$ tree

.

├── main.go

└── static

    └── hello.txt

hello.txt 文件内容

1

Hello World!

main.go

1、引入静态文件的内容到变量

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

package main

 

import (

    "embed"

    "fmt"

)

 

// 引入静态文件的内容到变量content

//go:embed static/hello.txt

var content string

 

// 注意需要这个语句,虽然没有用到,可以引入整个目录的文件

//go:embed static/*

var tmplFS embed.FS

 

func main() {

    fmt.Println(content)

}

输出

1

Hello World!

2、引入整个目录内所有文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package main

 

import (

    "embed"

    "fmt"

)

 

//go:embed static/*

var tmplFS embed.FS

 

func main() {

    // 读取文件内容

    content, _ := tmplFS.ReadFile("static/hello.txt")

 

    fmt.Println(string(content))

    // Hello World!

}

将打包产物拷贝到其他任意目录运行,也可以读取到静态文件内容

1

2

3

4

5

6

# 编译

$ go build main.go

 

# 拷贝到其他任意目录运行

./main

Hello World!

需要注意:

  • 要引入包embed
  • //go:embed 是一个整体,双斜杆后面不能有空格,例如:// go:embed是无效的

扩展:前后端分离的项目中,可以通过该方式,将前端的打包产物内嵌到golang的二进制打包产物中,一起发布


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Golang使用Redis与连接池方式
    Golang使用Redis与连接池 使用下载go的redis包go get github.com/gomodule/redigo/redis 如果网不好的话就很费劲了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2
  • Golang使用embed引入静态文件的代码
    Go 语言从 1.16 版本开始引入了一个新的标准库embed,可以在二进制文件中引入静态文件 指令:/go:embed 通过一个简单的小实例,来演示将静态
  • Golang发送Get和Post请求的实现
    最近在研究钉钉机器人,发现钉钉的第三方接口有时需要用Get或者Post请求访问,虽然说可以通过Apifox直接模拟发送请求,但是我还是想研究
  • Go实现数据脱敏的方案设计
    在一些常见的业务场景中可能涉及到用户的手机号,银行卡号等敏感数据,对于这部分的数据经常需要进行数据脱敏处理,就是将此部分数
  • golang testing使用示例介绍
    testing包服务于自动化测试 基本测试 Table Drvien Test 基于表的测试通过表形式进行测试每种情况的输入和期望输出,从而测试程序的正确性
  • Golang流程控制语句的具体使用

    Golang流程控制语句的具体使用
    顺序控制 顺序控制 默认情况下,Go代码执行顺序是按照从上到下依次执行的,这种按照顺序执行的代码就叫做顺序语句。如下: 1 2 3 4 5 6
  • Golang图片验证码的使用方法介绍

    Golang图片验证码的使用方法介绍
    一、背景 最近在使用到Golang进行原生开发,注册和登录页面都涉及到图片验证码的功能。找了下第三方库的一些实现,发现了这个库用得还
  • Golang中实现类似类与继承的方法
    在Go语言中,并没有像传统面向对象编程语言(Java、C++)中那样的类和继承的概念。Go语言采用了结构体和组合的方式来实现类似的功能。
  • Golang中四种gRPC模式举例介绍
    1. Unary RPC proto文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 syntax = proto3; option go_package=.;service; message HelloRequest { // Name of the person to greet string n
  • go-python库使用应用介绍
    在当今软件开发领域,跨语言编程已经成为一种常见的需求。不同的编程语言各自有其优势和适用场景,因此在项目开发过程中,经常需要
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计