2011-01-26 6 views
1

iPhoneキャッシュをHTML5 Webアプリケーションにして、使用時にオフラインにできるようにしようとしています。ウェブアプリケーションはwww.prism.gatech.edu/~gtg880fにあり、私はそれを作っていませんでした。私はただ試しにそれを借りています。私のiPhone Webアプリケーションがキャッシングせず、オフラインモードで動作するのはなぜですか?

唯一の3つのファイルがあります。 index.htmlを index.js のstyle.css

が、私はそれがオフラインウェブアプリとしてフルスクリーンになりますように<html manifest="offline2.manifest"><meta content="yes" name="apple-mobile-web-app-capable" />を含めるようにindex.htmlをを修正。

私offline2.manifestファイルは以下の通りです:

CACHE MANIFEST 
index.html 
index.js 
style.css 
debug.js 

NETWORK: 

CACHE: 

PS:debug.jsJonathan Starkからです。

Firefoxを使用すると、キャッシュが正しくキャッシュされ、Webアプリケーションをオフラインで使用できました。しかし、それはクロムとサファリの両方で失敗します。 Chromeの場合

、私は、次のデバッグメッセージが表示されます:

Application Cache Checking event 
Application Cache Error event: Invalid manifest mime type (text/plain) http://www.prism.gatech.edu/~gtg880f/offline2.manifest 

私はマニフェストMIMEタイプをGoogleで検索し、それを約.htaccess何かを言及し、何ではないと私は実際にそれが何を意味するのか、あまりにもわかりません。指示に従って、etc/apache2/httpd.confに行き、ALLOWOVERIDE ALLをnoneに変更しました。

これは何も修正されていないようですが、私はまだ同じエラーメッセージが表示されます。

簡単に言えば、私ができることをしたいのは、iPhoneのSafariブラウザをwww.prism.gatech.edu/~gtg880fに使用してホーム画面に保存することです。次に、3Gと無線LANをオフにして、ウェブアプリを使用します。

編集:roryfからの第1の答えを試しました: まだ動作しません。 httpd.confファイルを/etc/apache2/httpd.confに編集するとしますか?私はMac OSXを使用しています。私は、あなたはおそらく、あなたが.htaccessファイル(これを行うための一つの方法)について読んだことあるApacheの設定ファイル、でtext/cache-manifestにマニフェストファイルのMIMEタイプを設定する必要がありますように

<IfModule mime_module> 
    # 
    # TypesConfig points to the file containing the list of mappings from 
    # filename extension to MIME-type. 
    # 
    TypesConfig /private/etc/apache2/mime.types 

    # 
    # AddType allows you to add to or override the MIME configuration 
    # file specified in TypesConfig for specific file types. 
    # 
    #AddType application/x-gzip .tgz 
    # 
    # AddEncoding allows you to have certain browsers uncompress 
    # information on the fly. Note: Not all browsers support this. 
    # 
    #AddEncoding x-compress .Z 
    #AddEncoding x-gzip .gz .tgz 
    # 
    # If the AddEncoding directives above are commented-out, then you 
    # probably should define those extensions to indicate media types: 
    # 
    AddType application/x-compress .Z 
    AddType application/x-gzip .gz .tgz 
    AddType text/cache-manifest manifest # added to allow HTML5 offline caching 

答えて

0

が見えるこのセクションの下にこれを追加しました。あなたの.htaccessファイルにこれを追加する

動作するはずです:

AddType text/cache-manifest manifest 
+0

はまだ動作しない行目に近い「すべて」

どこかに「なし」からの値を変更します。 – okysabeni

+0

そのリクエストにどのようなMIMEタイプが設定されているかを確認し、Apacheの設定が間違っているかマニフェストかを教えてくれます。 – roryf

0

私の作業Webアプリケーションのクリッピングは、キャッシュ内のファイル名を複製:マニフェストファイルの一部を。このように:

CACHE MANIFEST 
index.html 
index.js 
style.css 
debug.js 
CACHE: 
index.html 
index.js 
style.css 
debug.js 
NETWORK: 

また、私はこれを含めマニフェストと同じWebサーバディレクトリにある.htaccessファイルに:

AddType text/cache-manifest .manifest manifest 
+0

まだ動作しません:( – okysabeni

+0

まだ動作しません.htaccessファイルとは何ですか?どこにも見つかりませんか?httpd.confと同じですか? 1つは/etc/apache2/httpd.conf、もう1つは/Applications/XAMPP/xamppfiles/etc/httpd.confです。私はXAMPPとZendServer CEをインストールしましたが、同じファイルが全部散在しているようです。 – okysabeni

+0

.htaccessファイルが存在しない場合は、追加してください。 – hotpaw2

0

私もiPhoneでオフラインWebアプリケーションをデバッグ同じ悩みを持っていました。アプリはChromeとSafari(Windowsの両方)で正しく動作しました。 iPhoneを再起動すると、ついにそのトリックがかかりました。お役に立てれば。

1

あなたのマニフェストファイルがまだtext/plainとして提供されているように見えました。これを修正するための手順を以下に示します。

  1. (時々、ドットで始まる名前のファイルを作成するための唯一の方法は、コマンドライン上でそうすることです)マニフェストファイルと同じディレクトリに .htaccessと呼ばれる新しいファイルを作成します。 http://web-sniffer.net/

    AddType text/cache-manifest manifest 
    
  2. 移動して、それが適切なMIMEタイプで提供されています確認するためにマニフェストファイルへのパスを挿入します。

  3. ファイルを編集して、それに次の行を挿入します。あなたがここで使用する必要があるパスがhttp://www.prism.gatech.edu/~gtg880f/offline2.manifest

0

それとも、あなたは、単にと呼ばれるファイル作ることで表示されます。manifest.phpをし、その中にこのコンテンツを置きます。

<?php 
    header('Content-Type: text/cache-manifest'); 
    echo "CACHE MANIFEST\n\n"; 
    echo "CACHE:\n"; 

    $hashes = ""; 
    $dir = new RecursiveDirectoryIterator("."); 
    foreach(new RecursiveIteratorIterator($dir) as $file) { 
    if ($file->IsFile() && 
    $file != "./manifest.php" && 
    substr($file->getFilename(), 0, 1) != ".") { 
     echo $file . "\n"; 
     $hashes .= md5_file($file); 
    } 
    } 

    echo "\n# Hash: " . md5($hashes) . "\n"; 
?> 
1

ファイルの拡張子を別のものに変更してみてください。

私は同じ問題を抱えていたと私はcache.manifestoとしてそれを保存したとき -

AddType text/cache-manifest .manifesto 

に.htaccessファイルを変更し、それがうまくwоrked

<html manifest="cache.manifesto" > 

としてhtmlファイルでそれを指摘。

1

これは私がオープンのhttpd.conf
は、バックアップを取り、MAC

で私のオフラインストレージで動作するように達成するために何をしたかです。
は「AllowOverrideのを」検索し、#198

Options Indexes FollowSymLinks 
AllowOverride None 
関連する問題