亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Go程序中捆綁靜態資源的最佳方法是什么?

在Go程序中捆綁靜態資源的最佳方法是什么?

Go
心有法竹 2019-11-11 14:51:55
我正在Go中開發一個小型Web應用程序,該應用程序旨在用作開發人員機器上的工具,以幫助調試其應用程序/ Web服務。該程序的界面是一個網頁,其中不僅包含HTML,而且還包含一些JavaScript(用于功能),圖像和CSS(用于樣式)。我正在計劃將此應用程序開源,因此用戶應該只需能夠運行Makefile,所有資源都將存放在所需的位置。但是,我也希望能夠簡單地分發具有盡可能少的文件/依賴關系的可執行文件。是否有將HTML / CSS / JS與可執行文件捆綁在一起的好方法,所以用戶只需要下載并擔心一個文件?現在,在我的應用程序中,提供靜態文件看起來像這樣:// called via http.ListenAndServefunc switchboard(w http.ResponseWriter, r *http.Request) {    // snipped dynamic routing...    // look for static resource    uri := r.URL.RequestURI()    if fp, err := os.Open("static" + uri); err == nil {        defer fp.Close()        staticHandler(w, r, fp)        return    }    // snipped blackhole route}因此非常簡單:如果請求的文件存在于我的靜態目錄中,請調用處理程序,該處理程序僅打開文件并嘗試Content-Type在投放之前設置好商品。我的想法是,這沒有必要基于真實的文件系統:如果有編譯的資源,我可以簡單地通過請求URI對其進行索引并按原樣提供它們。如果沒有很好的方法來執行此操作,或者我試圖通過這樣做來使錯誤的樹叫bar,請告訴我。我只是認為最終用戶希望盡可能少地管理文件。如果還有比go更合適的標簽,請隨時添加它們或讓我知道。
查看完整描述

3 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

還有一種奇特的方式-我使用maven插件來構建GoLang項目,它允許使用JCP預處理器將二進制塊和文本文件嵌入到源代碼中。在這種情況下,代碼看起來像下面的行(此處有一些示例)


var imageArray = []uint8{/*$binfile("./image.png","uint8[]")$*/}


查看完整回答
反對 回復 2019-11-11
  • 3 回答
  • 0 關注
  • 902 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號