2011-01-31 6 views
11

Cuando se utiliza la capacidad de HTML5 para especificar si los archivos están en caché (en el archivo manifest.cache), ¿se pueden especificar directorios enteros? ¿Puedo colocar una ruta al directorio de mis imágenes en la sección CACHE: y aplicarlo a todos los archivos de ese directorio, o debo especificar explícitamente los archivos de imagen que se almacenarán en caché?¿Puede el nuevo archivo HTML5 manifest.cache contener rutas a directorios?

En otras palabras, ¿es esto posible?

CACHE MANIFEST 

... 

CACHE: 
images/ 

... o tal vez esto?

CACHE MANIFEST 

... 

CACHE: 
images/* 

... o tengo que hacer esto:

CACHE MANIFEST 

... 

CACHE: 
images/logo.png 
images/image01.jpg 
images/image02.jpg 
images/image03.jpg 
... (etc) 
+0

El segundo funciona, creo. Eche un vistazo a [vaya fuera de línea con el caché de la aplicación] (http://html5doctor.com/go-offline-with-application-cache/) para obtener más ejemplos. –

Respuesta

15

Por desgracia, el tercer ejemplo es la correcta - lista de todos los archivos de forma individual. El html5 doctor article era incorrecto en el momento en que se publicó la pregunta y desde entonces se ha modificado.
Un comodín * sólo se permite en la sección "en línea lista blanca":

NETWORK: 
* 

que permite que los archivos requeridos para descargarse mientras está navegando en línea si no se ha descargado (según la normal).
Hay también "página de patrón de ruta" de la sección de retorno:

FALLBACK: 
//offline.html 

que algo funciona como un comodín. El/inicial coincidirá con la ruta de cada página en su sitio, por lo que cualquier página que no se encuentre en el caché utilizará /offline.html como alternativa de reemplazo. (Tenga en cuenta el espacio entre las dos barras.)

1

Creo que podría lograr un "comodín" construyendo el archivo .manifest (o .cache en su ejemplo) con la ayuda de un archivo PHP. De esta forma, podría permitir que PHP maneje la molestia de mantener los nombres de los archivos escaneando directorios haciendo eco de cada nombre de archivo. Probablemente sea mejor dejar que PHP coloque un archivo .manifest en su servidor; de lo contrario, la aplicación fuera de línea podría pensar que el archivo de manifiesto se actualizó y actualizó continuamente el caché.

Cuestiones relacionadas