Comment puis-je spécifier un caractère générique dans le HTML5 manifeste de cache pour charger toutes les images dans un répertoire?
J'ai beaucoup d'images dans un dossier qui sont utilisés dans l'application. Lors de l'utilisation du cache manifest il serait plus facile d'entretien sage si je pouvais spécifier une wild card pour charger toutes les images ou les fichiers dans un répertoire à être mis en cache.
E. g.
CACHE MANIFEST
# 2011-11-3-v0.1.8
#--------------------------------
# Pages
#--------------------------------
../index.html
../edit.html
#--------------------------------
# JavaScript
#--------------------------------
../js/jquery.js
../js/main.js
#--------------------------------
# Images
#--------------------------------
../img/*.png
Cela peut-il être fait? Ont essayé dans un peu de navigateurs avec ../img/*
mais ça ne semble pas fonctionner.
- REMARQUE: en 2017, la travail API est rapidement remplacer AppCache, et les navigateurs commencent à ignorer un
.manifest
fichier Firefox 44 suggère même de l'aide de travailleurs de Services de la place dans la console quand elle trouve une.manifest
fichier.
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que cela fonctionne de cette manière. Vous aurez à spécifier toutes les images une par une, ou avoir un simple script PHP pour faire une boucle dans le répertoire de sortie et le fichier (avec le bon
text/cache-manifest
en-tête de sûr).Il serait plus facile, mais comment ça va fonctionner? Le fichier manifeste est quelque chose qui est analysée et a agi dans le navigateur, ce qui n'a pas de connaissance particulière de fichiers sur votre serveur autre que ce que vous avez dit il. Si le navigateur voit ceci:
Quelle est la première image que le navigateur demande au serveur? Commençons avec ces:
De toutes les images qui pourraient exister avec un nom numérique, l'arrêt de semi-arbitrairement à 231-1. Combien de ces 2 milliards de fichiers existent dans votre
img
répertoire? Voulez-vous vraiment un navigateur qui fait toutes ces demandes, seulement pour obtenir 2 milliards d'erreur 404? Pour être complet, le navigateur serait probablement sage de demander à tous les zéro-rempli équivalents:Maintenant, le navigateur fait plus de 4 milliards de requêtes HTTP pour les fichiers qui pour la plupart ne sont pas là, et il n'est pas encore de même obtenu sur des lettres ou des signes de ponctuation dans la construction du possible les noms de fichiers qui peuvent exister sur le serveur. Ce n'est pas un moyen pour le fichier manifeste de travailler. Le serveur est l'endroit où les fichiers dans le
img
répertoire sont connus, il est donc sur le serveur de la liste des fichiers doit être construit.Ce serait un gros problème de sécurité si les navigateurs pourraient demander les listes de dossiers - c'est pourquoi Tomcat tourne cette capacité à off par défaut maintenant.
Mais, le navigateur peut localiser tous les matches pour les jokers référencé par les pages, il les caches. Cette approche serait encore problématique (comme, ce sujet les images ne sont pas initialement utilisé, mais de définir dynamiquement en JavaScript, etc., et il faudrait que tous les éléments mis en cache pas seulement être téléchargé, mais analysée comme bien).
Si vous essayez d'automatiser ce processus, au lieu de le faire manuellement. Utilisation d'un script, ou comme je le fais-je utiliser manifestR. Il sera à la sortie de votre manifest/appcache fichier et tout ce que vous avez à faire est de copier et coller. Je l'ai utilisé avec succès et n'ont habituellement qu'à faire quelques changements.
Aussi, je vous recommande d'utiliser l'en-tête de réseau avec le joker:
Cela permet à tous les actifs d'autres domaines liés via JSON, par exemple, à télécharger dans la mémoire cache. Je crois que c'est le seul en-tête où vous pouvez spécifier un caractère générique. Comme les autres l'ont dit ici, c'est pour des raisons de sécurité.
Le manifeste de cache est maintenant obsolète et vous devez utiliser les en-têtes HTML pour contrôler la mise en cache.
Par exemple: