Une erreur inconnue s'est produite lors de l'extraction de l'script (Travailleur)
Lorsqu'on passe en mode hors connexion, j'obtiens l'erreur suivante par mon travail de service:
(unknown) #3016 An unknown error occurred when fetching the script
mon travail ressemble à ceci:
var version = 'v1'
this.addEventListener('install', function(event){
event.waitUntil(
caches.open(version).then(cache => {
return cache.addAll([
'https://fonts.googleapis.com/icon?family=Material+Icons',
'https://fonts.googleapis.com/css?family=Open+Sans:400,600,300',
'./index.html'
])
})
)
})
this.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(resp) {
//if it's not in the cache, server the regular network request. And save it to the cache
return resp || fetch(event.request).then(function(response) {
return caches.open(version).then(function(cache) {
cache.put(event.request, response.clone())
return response
})
})
})
)
})
Il est au répertoire de niveau supérieur, à côté d'un manifeste de l'importation de ce genre dans index.html:
<link href="/manifest.json">
- Je importer le travailleur des services dans mon entrée fichier js. Et de s'inscrire juste après.
require('tether-manifest.json')
import serviceWorker from 'sw'
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register(serviceWorker)
.then(() => {
//registration worked
}).catch(error => {
throw new Error(error)
})
}
Il enregistre bien. Je ne rencontre pas de l'erreur jusqu'à ce que je passer en mode hors connexion.
Je suis en utilisant webpack à Réagir, et effectuer les actions suivantes dans webpack copier mon sw.js fichier dans le dossier dist:
loaders: [
{ //Service worker
test: /sw\.js$/,
include: config.src,
loader: 'file?name=[name].[ext]'
},
{ //Manifest
test: /manifest\.json$/,
include: config.src,
loader: 'file?name=[name].[ext]'
}
]
L'erreur de ne pas fournir d'informations sur ce qui se passe.
Quelqu'un a une idée de comment résoudre ce problème?
Bien que le site ne fonctionne pas à tous les hors-ligne droite maintenant. Je reçois le dinosaure, donc oui c'est un écueil si ce que vous essayez de faire est de se il pour travailler hors connexion.
Êtes-vous essayer de récupérer le fichier sw? Puis-je vous demander pourquoi? J'ai un peu une idée de pourquoi cette erreur, mais je tiens à préciser plus.
Eh bien, je suis de l'importer dans mon index.js fichier, l'enregistrer dans la première place. Mais à part ça, non?
Je suis encore en train de ce problème, une procédure claire pour corriger cela?
OriginalL'auteur MLyck | 2016-11-11
Vous devez vous connecter pour publier un commentaire.
J'ai eu exactement le même problème, j'ai passé une heure à essayer de le comprendre, et il s'est avéré que j'avais un autre onglet pour la même origine gauche ouvert quelque part (donc, en utilisant le même Service partagé d'un Travailleur qui a eu le "Hors ligne" dans la case de gauche vérifié et qui a empêché un autre onglet de demander
sw.js
pour une raison quelconque.Il semble que le hors d'état est une fuite à partir de l'onglet à l'intérieur de Travailleur des Services de la portée tout en n'étant pas dûment prise en compte, ni gérés par les autres onglets que celui qui a été tourné en mode Hors connexion en premier.
Donc, assurez-vous que vous n'avez pas d'autres clients exécutant le même Service, un Travailleur, vous devriez être en mesure de les trouver répertoriés dans DevTools > > le Service des Travailleurs.
Je vous remercie. C'est exactement la cause, j'ai eu l'Airhorner exemple d'ouvrir dans un autre onglet avec Hors-ligne activé alors que j'en avais un autre site local de l'ouvrir dans un autre onglet sur un port différent.
Je suis passé Angulaire de la CLI versions bêta de 18 à RC1 et tout le temps j'ai créé une nouvelle application, dès que j'obtiendrais ce même message d'erreur. J'ai enlevé le travailleur, comme expliqué ici et qui semble avoir fixé mon problème
OriginalL'auteur NOtherDev
Pour moi, cette erreur a disparu lorsque j'ai ajouté sw.js pour le cache lors de l'installation. Tout simplement oublié de le faire, mais il a résolu le problème.
OriginalL'auteur Koen Cornelis
J'ai eu ce problème tout en travaillant dans un Angulaires du projet. Mon problème est que j'ai été en utilisant Angulaire de la CLI intégré dans
ng serve -prod
de commande.Pour le faire fonctionner, j'ai utilisé
ng build -prod
et ensuite l'hôte de l'résultant dist dossier à l'aide de http-serverOriginalL'auteur Benjamin Kindle
En Chrome, ce que j'ai fait était de vérifier la possibilité
Bypass for network
et puis j'ai été en mesure de recharger.OriginalL'auteur carla