我有一個在10BASE-T以太網(CS8900)和基於EasyWeb項目的Tcp/IP實現的微型16位微控制器(St10)上運行的裸機應用程序。如何提供一個網站作爲單個文件?
有一個小型網絡服務器實現顯示設備的一些狀態信息,也允許更改設置等。
對於瀏覽器訪問,Web服務器提供了像index.html
,*.css
,*.js
,*.svg
,*.png
等一些文件。
由於裸金屬目標沒有像SD卡那樣的存儲介質,因此我將上面提到的所有資源都放到編譯後的二進制文件中。
爲了節省內存和減少流量,我把所有的文件放在一起使用壓縮,並讓我的網絡服務器使用Content-Encoding: gzip
來傳遞。
將所有文件合併到一個單獨的index.htm
的步驟目前是手動工作(包括替換文件名引用等)。可能有一種工具會自動執行此操作?
或者,我可以將zip/tar /不管所有文件壓縮成單個文件,並在http請求時傳遞這個文件嗎?
編輯2017年10月5日
有小的麻煩使得它在運行Kubuntu的16.04主機,但最終通過安裝固定它:
sudo apt-get install nodejs
sudo ln -sT "$(which nodejs)" /usr/local/bin/node
sudo apt-get install npm
sudo npm install -g inliner
也許,我會得到通過代替nodejs
去掉符號鏈接(沒試過)。 已經安裝了之後,我只需要運行:
inliner index.html >index-backed.html
gzip -c index-backed.html >index.html.gz
爲你工作一個單一的[去](https://golang.org)二進制是Web服務器,也包含你的靜態內容? – nbari
嗯,我已經有一個http服務器實施包括。用戶管理,摘要訪問認證,會話管理,動態內容生成(例如,設備狀態爲yaml)等等。 Go的方法聽起來像是對它們全面更新,不是嗎? – Joe
是的,所以也許不是你要找的東西,因爲像你這樣適當提及它意味着重做一切。 – nbari