成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

go資源內(nèi)嵌embed

社區(qū)管理員 / 867人閱讀

Go官方在1.16版本發(fā)布了官方內(nèi)嵌資源到二進(jìn)制的功能,使得部署更加簡(jiǎn)單

在開(kāi)發(fā)web的時(shí)候往往會(huì)有一些web文件,而部署的時(shí)候需要部署一個(gè)二進(jìn)制還要部署web文件比較繁瑣,在go1.16之前也有很多包實(shí)現(xiàn)了內(nèi)嵌資源文件到二進(jìn)制中如https://github.com/gobuffalo/packr,而如今go官方實(shí)現(xiàn)了這個(gè)特性

基本用法

package mainimport (
	_ "embed"
	"fmt")//go:embed Dockerfilevar f stringfunc main() {
	fmt.Println(f)}

上面的例子就是將當(dāng)前目錄的dockerfile內(nèi)容內(nèi)嵌到變量f中,編譯之后即使這個(gè)文件不存在也能打印出內(nèi)容

嵌入文件夾

package mainimport (
    "embed"
    "fmt"
    "path/filepath")//go:embed foovar fs embed.FSfunc main() {
    files, err := fs.ReadDir("foo")
    if err != nil {
        fmt.Println(err)
    }
    for _, file := range files {
        d, _ := fs.ReadFile(filepath.Join("foo", file.Name()))
        if err != nil {
            fmt.Println(err)
        }
        fmt.Println("文件名:", file.Name(), "內(nèi)容:", string(d))
    }}

上面的代碼將目錄下的foo目錄內(nèi)嵌到fs這個(gè)變量中,然后打印出這個(gè)文件夾里文字的名字和內(nèi)容

$ tree foo 
foo
├── test
└── test2

0 directories, 2 files

# 編譯
$ go build -o test .

# 執(zhí)行
$ ./test                
文件名: test 內(nèi)容: hahah
文件名: test2 內(nèi)容: testest

注意

  • 路徑默認(rèn)是從mod的目錄為根目錄

  • 會(huì)忽略”.“開(kāi)頭和”_“開(kāi)頭的文件

  • 不管是win還是linux都使用”/“

  • 支持匹配如,//go:embed foo/*.yaml

  • 可以同時(shí)導(dǎo)入多個(gè)目錄 如//go:embed foo test


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127884.html

相關(guān)文章

  • embed 嵌入插件遮住 div層 解決方案

    摘要:去掉,竟然被設(shè)置高于遮住了,神奇的存在。最終解決方案是菜單顯示時(shí),一起觸發(fā)層顯示遮住,菜單隱藏時(shí)觸發(fā),隱藏附加網(wǎng)上常見(jiàn)情況內(nèi)嵌,解決為內(nèi)嵌視頻,解決為 embed基本沒(méi)怎么用過(guò),一開(kāi)始看見(jiàn)竟然以為是過(guò)時(shí)的播放器標(biāo)簽,就隨口說(shuō)了這個(gè)已經(jīng)時(shí)了吧 (汗顏,果斷不了解清楚不能亂說(shuō)話(huà)) 認(rèn)識(shí): 標(biāo)簽定義嵌入的內(nèi)容,比如插件是HTML5的新標(biāo)簽 我遇到的問(wèn)題: 問(wèn)題簡(jiǎn)述: embed內(nèi)嵌插件: ...

    whinc 評(píng)論0 收藏0
  • SpringBoot究竟是如何跑起來(lái)的?

    摘要:你可以試著沿著調(diào)用棧代碼一層一層的深入進(jìn)去,如果你不打斷點(diǎn),你根本不知道接下來(lái)程序會(huì)往哪里流動(dòng)。接下來(lái)再看看運(yùn)行時(shí)堆棧,看看一個(gè)請(qǐng)求的調(diào)用棧有多深。就是如此被自動(dòng)裝配進(jìn)的。 摘要: 神奇的SpringBoot。 原文:SpringBoot 究竟是如何跑起來(lái)的? 作者:老錢(qián) Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 不得不說(shuō) SpringBoot 太復(fù)雜了,我本來(lái)只想研究一下...

    DevWiki 評(píng)論0 收藏0
  • 告訴你,Spring Boot 真是個(gè)牛逼貨!

    摘要:同時(shí),也提供了一個(gè)命令行工具來(lái)執(zhí)行的腳本。應(yīng)用監(jiān)控提供一系列端點(diǎn)可以監(jiān)控服務(wù)及應(yīng)用,能對(duì)應(yīng)用做健康檢測(cè)。這樣,需要對(duì)配置信息非常熟悉,要找起問(wèn)題來(lái)不是很容易。相對(duì)于優(yōu)點(diǎn)來(lái)說(shuō),這些缺點(diǎn)也都不算什么??傊?,是值得我們?nèi)魏我粋€(gè)開(kāi)發(fā)者嘗試摸索的。 現(xiàn)在 Spring Boot 非?;?,各種技術(shù)文章,各種付費(fèi)教程,多如牛毛,可能還有些不知道 Spring Boot 的,那它到底是什么呢?有什么用...

    MoAir 評(píng)論0 收藏0
  • HTML中嵌入SVG圖片的N種方式

    摘要:完美總結(jié)中嵌入圖片的種方式在解決這個(gè)問(wèn)題的過(guò)程中,順便查了下,發(fā)現(xiàn)除了這個(gè)是最容易想到的因?yàn)閳D片也是圖片嘛。不過(guò)和標(biāo)簽一樣,無(wú)法顯示內(nèi)嵌的使用標(biāo)簽標(biāo)簽是新增的一個(gè)專(zhuān)門(mén)顯示圖片的標(biāo)簽。 最近用到了個(gè)SVG圖片,里面還是帶標(biāo)簽的,想要把它嵌入到HTML中還是有些工作要做的。 經(jīng)歷 最初的圖片是這樣寫(xiě)的: 這是百度 ? p.s. 先拿百度的圖...

    NickZhou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<