7

HTML5 オフライン ストレージを基本的な方法で動作させようとしています。DiveIntoHTML5の情報を読んだところ、理にかなっているように見えますが、うまく機能していないようです。誰かがこれをデバッグするのを手伝ってくれるかどうか疑問に思いました。

基本的に、アプリケーションのホームページ index.htm をセットアップしました。したがって、私のアプリケーションはhttp://www.mydomain.com/online/index.htmの Web 上にあります。ユーザーはこのページにアクセスし、通常は日常のすべての作業をここで行います。この URL にアクセスすると、一連のキャッシュ ファイルが作成されるため、オフラインのときにhttp://www.mydomain.com/offlineにアクセスしてアプリケーションの動作中のバージョンを表示できます。

オンライン ホームページのコードの上位数行は次のとおりです。

<!DOCTYPE html>
<html manifest="cache.manifest">
<head>
   ...etc

「cache.txt」というプレーン テキスト ファイルを生成し、メモ帳で次の内容を追加しました。

CACHE MANIFEST
http://www.mydomain.com/offline/scripts/jquery-1.6.3.min.js
http://www.mydomain.com/offline/scripts/jquery-ui-1.8.16.custom.min.js
http://www.mydomain.com/offline/scripts/modernizr.min.js
http://www.mydomain.com/offline/scripts/json2.min.js
http://www.mydomain.com/offline/scripts/jquery.deserialize.js
http://www.mydomain.com/offline/scripts/jquery.cookie.js
http://www.mydomain.com/offline/scripts/main.js
http://www.mydomain.com/offline/css/main.css
http://www.mydomain.com/offline/css/structure-details.css
http://www.mydomain.com/offline/css/ui-lightness/jquery-ui-1.8.16.custom.css
http://www.mydomain.com/img/header.gif
http://www.mydomain.com/offline/img/bg.png
http://www.mydomain.com/offline/img/header_riser.gif
http://www.mydomain.com/offline/img/logo.png
http://www.mydomain.com/offline/img/offline.png
http://www.mydomain.com/offline/index.htm

次に、このファイルの名前を「cache.manifest」に変更し、オンライン アプリケーションのルート (ホームページと同じレベル) にアップロードして、http://www.mydomain.com/onlineでアクセスできるようにしました。 /cache.manifest .

ホスティング会社は、IIS の拡張子が .manifest のすべてのファイルに「text/cache-manifest」のコンテンツ タイプを追加したと思われます。http://www.mydomain.com/online/cache.manifestで Firefox でファイルを表示すると、 Firebug からコンテンツ タイプが次のように表示されるため、これは機能していると思います。

Content-Type    cache-manifest

または、これは「text/cache-manifest」を返す必要がありますか? おそらくこれが問題ですか?

システムのオフライン ストレージ フォルダ (C:\Users\Me\AppData\Local\Mozilla\Firefox\Profiles\b12u6xza.default) を表示すると、このドメインに関連するものはまったくありません。

私は少し困惑しているので、誰かが何がうまくいかないのかを提案できますか?

4

5 に答える 5

1

まず、仕様が変更されたため.appcache、マニフェスト拡張として使用する必要があります。

次に、mimeタイプはあなたが言うように定義する必要がありますtext/cache-manifest。私はIISとはあまり関係がありませんが、IIS管理UIを使用するか、web.configファイルを使用して、このMIMEタイプを追加する方法が2つあるようです。

また、マニフェストMIMEタイプが正しく認識されていない場合を含め、コンソールにはすべてのマニフェスト解析データとエラーが表示されるため、これをGoogleChromeでテストすることをお勧めします。

于 2012-01-12T17:33:03.580 に答える
1

あなたが気にしなければならないいくつかの問題があります:

  1. Chrome (そして、最終的にはすべてのブラウザーであると思います) は、安全な要求を介してキャッシュ ファイルのみを処理します。リクエストが安全でない場合、キャッシュは実行されません。
  2. モバイル ブラウザー (少なくとも、私がテストできたデバイス) は、安全な要求または安全でない要求を気にしません。しかし、私は政治の変化に備えたいと思っています
  3. Android ではファイルが正常に機能し、iOS ではファイルが失敗する理由を理解しようとして頭が混乱していました。その理由は、ブラウザーをシークレット モードで実行していたためです。シークレット モードの iOS はページをキャッシュできず、エラーが発生します。

さらに問題が見つかったら、書き留めます。

よろしく。

于 2018-03-16T21:06:05.643 に答える
0

これらの行を httpd.conf に追加してみてください。これが役立つかもしれません

AddType text/cache-manifest .manifest

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>
于 2011-10-04T10:27:30.330 に答える
0

Chrome のコンソールを使用してテストすることをお勧めします !(これらは Chrome のネットワークでは表示されません)

私の例(訪問:www.mustrank.com/views/1.php)。

以下の chrome のコンソール出力を見てください。マニフェスト ファイル "website.appcache" が最初に作成され、次にソース "1.html" と "main.css" がダウンロードされます。

[マニフェストでアプリケーション キャッシュを作成する www.mustrank.com/views/website.appcache 1.php:1

アプリケーション キャッシュ チェック イベント 1.php:1

アプリケーション キャッシュ ダウンロード イベント 1.php:1

Application Cache Progress イベント (0/2) www.mustrank.com/views/1.html 1.php:1

Application Cache Progress イベント (1/2) www.mustrank.com/css/main.css 1.php:1

Application Cache Progress イベント (2/2) 1.php:1

アプリケーション キャッシュ キャッシュ イベント ]

于 2014-04-21T03:31:20.263 に答える