我有一个在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