Go官方在1.16版本發布了官方內嵌資源到二進制的功能,使得部署更加簡單
在開發web的時候往往會有一些web文件,而部署的時候需要部署一個二進制還要部署web文件比較繁瑣,在go1.16之前也有很多包實現了內嵌資源文件到二進制中如https://github.com/gobuffalo/packr,而如今go官方實現了這個特性
package mainimport ( _ "embed" "fmt")//go:embed Dockerfilevar f stringfunc main() { fmt.Println(f)}
上面的例子就是將當前目錄的dockerfile內容內嵌到變量f中,編譯之后即使這個文件不存在也能打印出內容
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(), "內容:", string(d)) }}
上面的代碼將目錄下的foo目錄內嵌到fs這個變量中,然后打印出這個文件夾里文字的名字和內容
$ tree foo foo ├── test └── test2 0 directories, 2 files # 編譯 $ go build -o test . # 執行 $ ./test 文件名: test 內容: hahah 文件名: test2 內容: testest
路徑默認是從mod的目錄為根目錄
會忽略”.“開頭和”_“開頭的文件
不管是win還是linux都使用”/“
支持匹配如,//go:embed foo/*.yaml
可以同時導入多個目錄 如//go:embed foo test
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127884.html
摘要:去掉,竟然被設置高于遮住了,神奇的存在。最終解決方案是菜單顯示時,一起觸發層顯示遮住,菜單隱藏時觸發,隱藏附加網上常見情況內嵌,解決為內嵌視頻,解決為 embed基本沒怎么用過,一開始看見竟然以為是過時的播放器標簽,就隨口說了這個已經時了吧 (汗顏,果斷不了解清楚不能亂說話) 認識: 標簽定義嵌入的內容,比如插件是HTML5的新標簽 我遇到的問題: 問題簡述: embed內嵌插件: ...
摘要:你可以試著沿著調用棧代碼一層一層的深入進去,如果你不打斷點,你根本不知道接下來程序會往哪里流動。接下來再看看運行時堆棧,看看一個請求的調用棧有多深。就是如此被自動裝配進的。 摘要: 神奇的SpringBoot。 原文:SpringBoot 究竟是如何跑起來的? 作者:老錢 Fundebug經授權轉載,版權歸原作者所有。 不得不說 SpringBoot 太復雜了,我本來只想研究一下...
摘要:同時,也提供了一個命令行工具來執行的腳本。應用監控提供一系列端點可以監控服務及應用,能對應用做健康檢測。這樣,需要對配置信息非常熟悉,要找起問題來不是很容易。相對于優點來說,這些缺點也都不算什么??傊?,是值得我們任何一個開發者嘗試摸索的。 現在 Spring Boot 非?;?,各種技術文章,各種付費教程,多如牛毛,可能還有些不知道 Spring Boot 的,那它到底是什么呢?有什么用...
摘要:完美總結中嵌入圖片的種方式在解決這個問題的過程中,順便查了下,發現除了這個是最容易想到的因為圖片也是圖片嘛。不過和標簽一樣,無法顯示內嵌的使用標簽標簽是新增的一個專門顯示圖片的標簽。 最近用到了個SVG圖片,里面還是帶標簽的,想要把它嵌入到HTML中還是有些工作要做的。 經歷 最初的圖片是這樣寫的: 這是百度 ? p.s. 先拿百度的圖...
閱讀 283·2024-11-07 18:25
閱讀 130362·2024-02-01 10:43
閱讀 867·2024-01-31 14:58
閱讀 828·2024-01-31 14:54
閱讀 82766·2024-01-29 17:11
閱讀 3047·2024-01-25 14:55
閱讀 1985·2023-06-02 13:36
閱讀 3032·2023-05-23 10:26