2017-09-23 14 views
1

私は10BASE-Tイーサネット(CS8900)を備えた小型の16ビットマイクロコントローラ(St10)とEasyWebプロジェクトに基づくTcp/IP実装でベアメタルアプリケーションを実行しています。ウェブサイトを1つのファイルとして提供するにはどうすればいいですか?

デバイスのステータス情報を表示するために実装された小さなウェブサーバがあり、設定なども変更できます。ブラウザアクセスのために

、ウェブサーバは、その上index.html*.css*.js*.svg*.pngなどいくつかのファイルを提供します。

ベアメタルのターゲットにはsdカードのような記憶メディアがないので、上記のすべてのリソースをコンパイルされたバイナリに入れます。

メモリを節約し、トラフィックを減らすために、すべてのファイルをindex.html個のファイルにまとめて、gzipを使用して圧縮し、Content-Encoding: gzipを使用してWebサーバーに配信させます。

すべてのファイルをまとめてindex.htmにする手順は、現在のところ手動での作業です(ファイル名の参照などを含む)。これを自動的に行うツールがありますか?

または、すべてのファイルを1つのファイルにまとめて、http://www GET /リクエストで配信できますか?

編集は、2017年10月5日

brain99言及inlinerを使用することにより解決しました。

それは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 
+0

は、あなたの静的なコンテンツを含むウェブサーバーである[go](https://golang.org)バイナリを1つだけ使用できますか? – nbari

+0

ええと、私は既にHTTPサーバー実装を持っています。ユーザ管理、ダイジェストアクセス認証、セッション管理、動的コンテンツ生成(例えば、yamlとしてのデバイス状態)などが含まれる。 goのアプローチは、それらのすべてを広く更新しているように聞こえるのではないでしょうか? – Joe

+0

はい、それはあなたが正しい言葉のようにすべてをやり直すことを意味するので、あなたが探しているものではないかもしれません。 – nbari

答えて

2

オプション1

:クローム

を経由してあなたは、単一のHTMLファイルにWebページを保存するための2つのChromeの拡張機能のセットがあります

2番目の拡張子は、最初の拡張子が必要とするヘルパー拡張子です。私はこれをテストしなかったが、それはChromeウェブストアでかなり良いレビューをしているようだ(明らかに複雑なページで窒息する可能性がある)。

これらの拡張機能を使用すると、Chromeでページを開いて、拡張機能を使用してCSS /スクリプト/画像が埋め込まれた単一ファイルとして保存するだけで済みます。

オプション2:スクリプト可能

スクリプトで物事を自動化したい場合は、そのための正確project on githubは、NPM経由でインストールすることができ、また、そこにあります。

+0

いいですね。コマンドラインインターフェイスがあるので、開発ツールチェーンに統合できるようになっているかどうか知っていますか? – Joe

+0

[inliner](https://github.com/remy/inliner)が私のニーズに完全にマッチします! – Joe

0

私はあなたが何をしたいのかに少し混乱していますが、私は、あなたには、いくつかのストレージを節約する方法が必要あなたは多分試みることができる一つのことを推測しています:私は実行する必要がある、ということにインストールした後 いくつかのファイルをGoogle Driveに保存していますか?その方法は、あなたがそこにあるファイルを心配する必要はありません、あなたは自分の画像をアップロードし、このようなドライブからそれらを引く:もちろん

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

あなたの実際のファイルIDとYOUR_FILE_IDを交換する、ことにより、これを取得しますGoogleドライブの共有リンクを使用してこのように:これはあなたの役に立てば幸い

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

、私はそれをビュンよりも、この優れた解決策を見つけるだろうが、選択はあなた次第です!

+0

私のデバイスのインターネット接続がすべてではありません。いくつかのケースでは、ベアメタルデバイスとPC /ノートブックのみが接続されています。イーサネット。 – Joe

関連する問題