これは私の最初の投稿ですので、間違っていれば教えてください。cssやpngなどの外部リソースをオフラインでキャッシュするためにIndexedDB/PouchDBを使用する
私たちはアンギュラ2ウェブアプリケーションに取り組んでおり、多数のブラウザ(IE11、Chrome、Mobile Safari)でオフラインで作業する機能が必要です。これを達成するために、大量のデータのキャッシュを可能にするため、IndexedDBとPouchDBを検討しました。
私たちの状況は以下の通りです。初期化では、いくつかのリソースファイルを返すapiサービスを呼び出します。 "styles.css"と "image.png"という名前のcssファイルとpngファイルがあります。これらをDBに保存します。それぞれのコンポーネントを表示するときに<link>
タグを使用して<head>
にCSSを挿入します。
HTMLは次のようになります。私たちはPNGへのURLを持つことになりますStyles.cssを内部
<html>
<head>
<link href="styles.css" rel="stylesheet">
</head>
...
</html>
:
.example-icon .icon
{
background-image: url("image.png")
}
質問は、我々は「スタイルを参照してくださいか、です。 "styles.css"と "image.png"の両方がIndexedDB/PouchDBにある場合、htmlの "css"と "styles.css"の "image.png"が表示されます。
ご協力いただければ幸いです。
これはServiceWorkerが設計したものです。 Safari/Edge/IEのApplicationCacheフォールバックを使用してServiceWorkerを実装することができます。 – nlawson
ジョシュアのヒントをありがとう。私たちはURL.createObjectURL(BLOB)を見てきましたが、おそらくその方法を使用しています。正規表現に一致するリライトURLを特定のポートに書き換えるURLを使用しているという問題もあります。 localhost/app/test - > localhost:3000/app/testを入力します。 localhost/objecturl上のURLのみを作成する場合、createObjectURLによって問題が発生するかどうかは不明です。提案はありますか? @nlawson提案していただきありがとうございます。残念なことに、私は、このユースケースではServiceWorkerのフォールバックとなるためにアプリキャッシュが多用途であるとは考えていません。 – twijaya