J'ai finalement résolu cela de mon côté. Je suis fainéant et je veux que mon serveur génère dynamiquement mon cache-manifeste pour moi.
Cette exportation de module est la réponse à la demande de cache-manifeste sur mon serveur.
Merci pour le conseil sur les deux demandes, alors voici comment je l'ai fait avec le noeud:
//OFFLINE CACHE
var cacheManifest = undefined;
exports.cache = function(req, res){
if (!cacheManifest) {
var fsutils = require('modules/utils/fsutils');
//get the files and generate the output for cache.manifest
fsutils.getFiles('/public', function(files) {
var out = 'CACHE MANIFEST\n\ ';
var len = files.length;
for (var i = 0; i < len; ++i) {
out += files[i] + '\n\ ';
}
//setup for second request
cacheManifest = out;
//send output
res.header('Content-Type', 'text/cache-manifest');
res.end(out);
});
} else {
console.log('cache is cahced');
res.header('Content-Type', 'text/cache-manifest');
res.end(cacheManifest);
}
};
L'astuce ici est de ne pas reconstruire votre cache-manifeste à chaque requête. Fondamentalement, l'utilisateur n'obtient le manifeste que la première fois qu'il atterrit sur votre application, s'il a été modifié, ou vous pouvez l'obliger à expirer via le code côté client ou serveur.
La première visite générera toujours le dernier manifeste alors vous pouvez faire ce que vous voulez après cela.
J'ai rencontré l'erreur parce que je produisais (moroniquement) le document cache-manifest avec chaque requête et puisque chrome faisait la seconde requête de sauvegarde, elle ne correspondait pas et échouait.
daN.m ...
J'ai le même problème, mais je ne comprends pas votre solution ... – Sucrenoir
Je voudrais aussi une explication de la façon plus claire que vous avez résolu cela. J'utilise node.js et exprime et génère dynamiquement mon fichier manifeste. – mattdlockyer
Cette approche d'horodatage n'est pas toujours disponible, voir ma solution ci-dessous. – mattdlockyer