我正在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[]")$*/}
- 3 回答
- 0 關注
- 902 瀏覽
添加回答
舉報
0/150
提交
取消