2010-08-13 6 views
2

J'ai écrit un éditeur de texte simple en HTML5 qui est supposé fonctionner hors connexion. Cependant, je ne peux pas faire fonctionner le cache de l'application hors ligne, et je n'arrive pas à comprendre pourquoi.Cache d'application HTML5 ne fonctionnant pas

Mon fichier manifeste est comme ceci:

CACHE MANIFEST 
application.html 
options.html 
... 

Et il est invoqué comme suit:

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

J'utilise Google App Engine pour héberger l'application Web.

J'ai mis la page Web à travers le validateur HTML du W3C (http://validator.w3.org/check?uri=https%3A%2F%2Fwrite-space.appspot.com%2F) et ça sort très bien.

Je l'ai testé dans Chrome et Firefox. Dans Chrome, rien n'est ajouté au stockage de cache (et window.applicationCache.status renvoie 0). Dans Firefox, la barre de notification demandant de mettre en cache les fichiers n'apparaît pas. Fondamentalement, les fichiers ne sont pas mis en cache. J'ai regardé diverses démos qui mettent en cache pour une visualisation hors ligne, et je n'arrive pas à comprendre pourquoi mon code ne fonctionne pas.

Quelqu'un peut-il aider?

Répondre

6

Vous devez ajouter un type MIME à .manifest:

utilisant text/cache-manifest

En .htaccess:

AddType text/cache-manifest .manifest

+0

Le moteur de google app n'aurait-il pas fait cela? – Hans

+0

Dunno ... Peut-être pas;) Mais c'est l'erreur la plus commune dans ces cas, donc, la plupart du temps cela fonctionne;) – dododedodonl

9

Pour ajouter MIME type text/cache-manifest pour les fichiers .manifest dans GAE l'utilise dans votre application.yaml:

- url: /static/(.*)\.manifest 
    static_files: static/\1.manifest 
    upload: static/(.*)\.manifest 
    mime_type: text/cache-manifest 

Cela servirait tous les fichiers dans le dossier static avec le type MIME correct.

Questions connexes