如何将网站作为单个文件提供?

时间:2017-09-23 12:29:55

标签: html http bare-metal

我在带有10BASE-T以太网(CS8900)的微型16位微控制器(St10)和基于EasyWeb项目的Tcp / IP实现上运行裸机应用程序。

实现了一个微小的网络服务器,用于显示设备的某些状态信息,还允许更改设置等。

对于浏览器访问,网络服务器提供了一些文件,例如index.html*.css*.js*.svg*.png等等。

由于裸机目标没有像SD卡这样的存储介质,我将所有上述资源都放入已编译的二进制文件中。

为了节省内存并减少流量,我将所有文件放在一个使用index.html的{​​{1}}压缩文件中,然后让我的网络服务器使用gzip传递此内容。

将所有文件组合成单个Content-Encoding: gzip的步骤目前是手动工作(包括替换文件名引用等)。可能有一个工具可以自动执行此操作吗?

或者,我可以将zip / tar /所有文件压缩到单个文件中,并在http index.htm请求时发送吗?

编辑2017-10-05

使用inliner提到的brain99解决。

在Kubuntu 16.04主机上运行时遇到小麻烦但最后通过安装修复它:

GET /

也许,我使用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-legacy(尚未尝试过)来摆脱符号链接。 安装完成后,我只需要运行:

nodejs

2 个答案:

答案 0 :(得分:2)

选项1 :通过Chrome

有两个Chrome扩展程序允许您将网页保存到单个HTML文件中:

第二个扩展是第一个扩展所需的帮助扩展。我没有对此进行测试,但它似乎在Chrome网上商店中得到了相当不错的评价(显然它可以在复杂的网页上窒息)。

通过这些扩展程序,您应该能够在Chrome中打开该页面并使用扩展程序将其另存为包含嵌入式CSS /脚本/图像的单个文件。

选项2 :可编写脚本

如果你想在脚本中自动化,那么还有一个project on github,可以通过npm安装。

答案 1 :(得分:0)

我对你想要做什么感到有些困惑,但我猜你需要一种方法来节省一些存储空间,有一件事你可以尝试在Google Drive中存储一些文件?这样,您就不必担心那里的文件了,您只需上传图片,然后将其从驱动器中拉出来就像这样:

<img src="https://drive.google.com/uc?export=download&id=YOUR_FILE_ID">

当然,将YOUR_FILE_ID替换为您的实际文件ID,请使用Google云端硬盘的共享链接获取该文件ID。像这样:

  

https://drive.google.com/file/d/YOUR_FILE_ID/view?usp=sharing

我会发现这是一个比拉链更好的解决方案,但选择权在你手中,希望这对你有帮助!