2011-08-27 21 views
14

Estoy construyendo una aplicación web fuera de línea y quiero usar el manifiesto de caché. Actualmente mi caché manifiesta ve así:¿Está bien incluir archivos externos en el manifiesto de caché?

CACHE MANIFEST 
# Change the version number below each time we update a resource. 
# Rev 1 
index.html 
photo.html 
js/photo.js 
css/photo.css 
http://code.jquery.com/jquery-1.6.1.min.js 
http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js 
http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css 
http://maps.google.com/maps/api/js?sensor=false&region=GB 

¿Hay alguna razón no incluir, alojados-CDN jQuery, archivos externos jQuery Mobile y Google Maps en la caché-manifiesto?

no puedo pensar en uno, pero yo pensaba que iba a preguntar a los sabios que yo :)

+0

no creo que la respuesta es correcta. favor ver [esta otra pregunta sobre SO] [1] [1]: http://stackoverflow.com/questions/10795268/can-i-use-html5-cache-manifest-to- store-third-party-js – user1632306

+1

Vuelva a verificar las respuestas; Sospecho que la respuesta aceptada es incorrecta y causó mucha confusión. He proporcionado una respuesta diferente con las fuentes. –

+0

Vuelva a verificar la respuesta válida – davidtaubmann

Respuesta

-6

Usted no puede. Cache Manifest solo funcionará para archivos del mismo dominio. Necesitaría un proxy de su dominio si desea hacer una lista blanca de recursos entre dominios.

+0

Ah. Esa sería una buena razón, entonces. Gracias. – Richard

+5

Esta respuesta es ** INCORRECTA ** al menos para las imágenes, pero probablemente también para las secuencias de comandos (consulte mi respuesta para conocer las fuentes). Vuelva a verificar y proporcione una fuente o elimine/corrija la respuesta, ya que esto aparece en las búsquedas de Google y es muy confuso. –

+0

De hecho, es incorrecto (Chrome) – markmarijnissen

19

Sí. En realidad, usted debe incluir imágenes externas en su manifiesto, ¡o algunos navegadores no las cargarán en absoluto, incluso si hay una conexión de red disponible! (A menos que usted proporcione una sección de la red, lo que puede hacer que las imágenes que se debe buscar cada vez, sin pasar por la memoria caché del navegador normal.)

Las imágenes se pueden almacenar en caché(al menos por Firefox, no midieron Chrome).

El spec dice explícitamente:

Desconectado manifiestos de la caché de aplicaciones pueden utilizar rutas absolutas o incluso URLs absolutas

http://manifest-validator.com/ también informa de un manifiesto con URL externas como OK.

No estoy 100% seguro de que esto también se aplica a las secuencias de comandos, pero una prueba rápida con Firefox parecía que la secuencia de comandos se almacena en caché como se esperaba.

2

MobileSafari tiene una regla según la cual bajo SSL, todas las rutas en la aplicaciónCache deben cumplir con la política del mismo origen. La aplicación Cache cacheará con éxito con rutas de origen foráneo, pero no verá esos recursos enumerados en la tabla Inspector web-> Almacenamiento-> Caché de aplicaciones, y no estarán disponibles cuando esté fuera de línea.

Este comportamiento no se describe en la documentación de Apple, pero es todavía evidente en IOS 10.2: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/OfflineApplicationCache/OfflineApplicationCache.html

+0

[especificaciones W3] (https://www.w3.org/TR/2011/WD-html5-20110525/offline.html # writing-cache-manifies): si el manifiesto es https, todas las URL deben tener el mismo origen que el manifiesto – mu3

Cuestiones relacionadas